]> git.llucax.com Git - z.facultad/75.68/celdas.git/blobdiff - trunk/src/main.cpp
Bugfix en CIndiceMagico::remove(string).
[z.facultad/75.68/celdas.git] / trunk / src / main.cpp
index ea0826e858b6f5b170b875602e45a18808e7ae2d..10da19fc15d1de7784489b8a055a7a243216c38e 100644 (file)
@@ -9,47 +9,24 @@ void CMiEntorno::inicializar()
        datos.add("robot.sensor_adelante",      1) ;
        datos.add("robot.sensor_atras",         0) ;
        datos.add("robot.sensor_derecha",       0) ;
-       datos.add("robot.sensor_izquierda", 0) ;
+       datos.add("robot.sensor_izquierda",     0) ;
        datos.add("robot.avanzo_adelante",      0) ;
        datos.add("robot.avanzo_atras",         0) ;
        datos.add("robot.avanzo_derecha",       0) ;
-       datos.add("robot.avanzo_izquierda", 0) ;
-/*
-       // Inicializo el Entorno
-       datos.add("robot.avanzo_en_x", 0) ;
-       // old datos.add("robot.avanzo_en_y", 0) ;
-       // old datos.add("robot.avanzo_en_z", 0) ;
-
-       datos.add("robot.sensor_1", 0) ;
-       datos.add("robot.sensor_2", 0) ;
-       datos.add("robot.sensor_3", 0) ;
-       datos.add("robot.sensor_4", 0) ; // new
-*/
+       datos.add("robot.avanzo_izquierda",     0) ;
 }
 
 
 void CMiEntorno::actualizar()
 {
-       datos.find("robot.avanzo_adelante")             = 0 ;
-       datos.find("robot.avanzo_atras")                = 0 ;
-       datos.find("robot.avanzo_derecha")              = 0 ;
-       datos.find("robot.avanzo_izquierda")            = 0 ;
-       datos.find("robot.sensor_adelante")             = 0 ;
-       datos.find("robot.sensor_atras")                = 0 ;
-       datos.find("robot.sensor_derecha")              = 0 ;
-       datos.find("robot.sensor_izquierda")            = 0 ;
-
-/*
-       datos.find("robot.sensor_1") = sensor_1 ;
-       datos.find("robot.sensor_2") = sensor_2 ;
-       datos.find("robot.sensor_3") = sensor_3 ;
-       datos.find("robot.sensor_4") = 20 ; // new
-
-       datos.find("robot.avanzo_en_x") = avanzo_en_x?1:0 ;
-       datos.find("robot.avanzo_en_y") = avanzo_en_y?1:0 ;
-       datos.find("robot.avanzo_en_z") = avanzo_en_z?1:0 ;
-*/
-       
+       datos.set_val("robot.sensor_adelante",          0) ;
+       datos.set_val("robot.sensor_atras",             0) ;
+       datos.set_val("robot.sensor_derecha",           0) ;
+       datos.set_val("robot.sensor_izquierda",         1) ;
+       datos.set_val("robot.avanzo_adelante",          1) ;
+       datos.set_val("robot.avanzo_atras",             0) ;
+       datos.set_val("robot.avanzo_derecha",           0) ;
+       datos.set_val("robot.avanzo_izquierda",         0) ;
 }
 
 
@@ -63,95 +40,9 @@ int main(int argc, char* argv[])
 
        e->inicializar() ;
 
-/* OLD
-       // Inicializo las teorias
-       CTeoria t1("Avanzar_X_1", "AvanzarX", 1, 1) ;
-       t1.datos_iniciales.add ("robot.sensor_1", 0) ;
-       t1.datos_iniciales.add ("robot.sensor_2", ANY) ;
-       t1.datos_iniciales.add ("robot.sensor_3", ANY) ;
-       t1.datos_iniciales.add ("robot.avanzo_en_x", ANY) ;
-       t1.datos_iniciales.add ("robot.avanzo_en_y", ANY) ;
-       t1.datos_iniciales.add ("robot.avanzo_en_z", ANY) ;
-       t1.datos_finales.add ("robot.avanzo_en_x", 1) ;
-       t1.datos_finales.add ("robot.avanzo_en_y", ANY) ;
-       t1.datos_finales.add ("robot.avanzo_en_z", ANY) ;
-       t1.datos_finales.add ("robot.sensor_1", ANY) ;
-       t1.datos_finales.add ("robot.sensor_2", ANY) ;
-       t1.datos_finales.add ("robot.sensor_3", ANY) ;
-
-       CTeoria t2("Avanzar_Y_1", "AvanzarY", 1, 1) ;
-       t2.datos_iniciales.add ("robot.sensor_1", ANY) ;
-       t2.datos_iniciales.add ("robot.sensor_2", 0) ;
-       t2.datos_iniciales.add ("robot.sensor_3", ANY) ;
-       t2.datos_iniciales.add ("robot.avanzo_en_x", ANY) ;
-       t2.datos_iniciales.add ("robot.avanzo_en_y", ANY) ;
-       t2.datos_iniciales.add ("robot.avanzo_en_z", ANY) ;
-       t2.datos_finales.add ("robot.avanzo_en_x", 0) ;
-       t2.datos_finales.add ("robot.avanzo_en_y", 1) ;
-       t2.datos_finales.add ("robot.avanzo_en_z", 0) ;
-       t2.datos_finales.add ("robot.sensor_1", ANY) ;
-       t2.datos_finales.add ("robot.sensor_2", ANY) ;
-       t2.datos_finales.add ("robot.sensor_3", ANY) ;
-
-       CTeoria t3("Avanzar_Z_1", "AvanzarZ", 1, 1) ;
-       t3.datos_iniciales.add ("robot.sensor_1", ANY) ;
-       t3.datos_iniciales.add ("robot.sensor_2", ANY) ;
-       t3.datos_iniciales.add ("robot.sensor_3", 0) ;
-       t3.datos_iniciales.add ("robot.avanzo_en_x", ANY) ;
-       t3.datos_iniciales.add ("robot.avanzo_en_y", ANY) ;
-       t3.datos_iniciales.add ("robot.avanzo_en_z", ANY) ;
-       t3.datos_finales.add ("robot.avanzo_en_x", 0) ;
-       t3.datos_finales.add ("robot.avanzo_en_y", 0) ;
-       t3.datos_finales.add ("robot.avanzo_en_z", 1) ;
-       t3.datos_finales.add ("robot.sensor_1", ANY) ;
-       t3.datos_finales.add ("robot.sensor_2", ANY) ;
-       t3.datos_finales.add ("robot.sensor_3", ANY) ;
-*/
-
-/*
-       // Inicializo las teorias
-       CTeoria t1("Avanzar_X_1", "AvanzarX", 1, 1) ;
-       t1.datos_iniciales.add ("robot.sensor_1", ANY) ;
-       t1.datos_iniciales.add ("robot.sensor_2", ANY) ;
-       t1.datos_iniciales.add ("robot.sensor_3", ANY) ;
-       t1.datos_iniciales.add ("robot.sensor_4", ANY) ;
-       t1.datos_iniciales.add ("robot.avanzo_en_x", ANY) ;
-       t1.datos_finales.add ("robot.avanzo_en_x", ANY) ;
-       t1.datos_finales.add ("robot.sensor_1", ANY) ;
-       t1.datos_finales.add ("robot.sensor_2", ANY) ;
-       t1.datos_finales.add ("robot.sensor_3", ANY) ;
-       t1.datos_finales.add ("robot.sensor_4", ANY) ;
-
        // Inicializo las teorias
-       CTeoria t2("Avanzar_X_2", "AvanzarX", 1, 1) ;
-       t2.datos_iniciales.add ("robot.sensor_1", ANY) ;
-       t2.datos_iniciales.add ("robot.sensor_2", ANY) ;
-       t2.datos_iniciales.add ("robot.sensor_3", ANY) ;
-       t2.datos_iniciales.add ("robot.sensor_4", ANY) ;
-       t2.datos_iniciales.add ("robot.avanzo_en_x", ANY) ;
-       t2.datos_finales.add ("robot.avanzo_en_x", ANY) ;
-       t2.datos_finales.add ("robot.sensor_1", ANY) ;
-       t2.datos_finales.add ("robot.sensor_2", ANY) ;
-       t2.datos_finales.add ("robot.sensor_3", ANY) ;
-       t2.datos_finales.add ("robot.sensor_4", ANY) ;
-
-
-       a.teorias.add(t1.nombre.c_str(), t1) ;
-       a.teorias.add(t2.nombre.c_str(), t2) ;
-       // OLD a.teorias.add(t3.nombre.c_str(), t3) ;
-#ifdef DEBUG
-       std::cout << "Agrega teoria " << t1.nombre << ":\n";
-       std::cout << "  .datos_iniciales:\n" << t1.datos_iniciales << "\n";
-       std::cout << "  .datos_finales:\n" << t1.datos_finales << "\n";
-       std::cout << "Agrega teoria " << t2.nombre << ":\n";
-       std::cout << "  .datos_iniciales:\n" << t2.datos_iniciales << "\n";
-       std::cout << "  .datos_finales:\n" << t2.datos_finales << "\n";
-#endif // DEBUG
-
-*/
-
-       // Inicializo las teorias
-       CTeoria t1("Avanzar", "avanzar", 1, 1) ;
+       CTeoria* pt1 = new CTeoria("Avanzar", "avanzar", 1, 1) ;
+       CTeoria& t1 = *pt1;
        t1.datos_iniciales.add ("robot.sensor_adelante",        0) ;
        t1.datos_iniciales.add ("robot.sensor_atras",           ANY) ;
        t1.datos_iniciales.add ("robot.sensor_derecha",         ANY) ;
@@ -169,8 +60,8 @@ int main(int argc, char* argv[])
        t1.datos_finales.add ("robot.avanzo_derecha",           0) ;
        t1.datos_finales.add ("robot.avanzo_izquierda",         0) ;
 
-
-       CTeoria t2("Retroceder", "retroceder", 1, 1) ;
+       CTeoria* pt2 = new CTeoria("Retroceder", "retroceder", 1, 1) ;
+       CTeoria& t2 = *pt2;
        t2.datos_iniciales.add ("robot.sensor_adelante",        ANY) ;
        t2.datos_iniciales.add ("robot.sensor_atras",           0) ;
        t2.datos_iniciales.add ("robot.sensor_derecha",         ANY) ;
@@ -189,7 +80,8 @@ int main(int argc, char* argv[])
        t2.datos_finales.add ("robot.avanzo_izquierda",         0) ;
 
 
-       CTeoria t3("Derecha", "derecha", 1, 1) ;
+       CTeoria* pt3 = new CTeoria("Derecha", "derecha", 1, 1) ;
+       CTeoria& t3 = *pt3;
        t3.datos_iniciales.add ("robot.sensor_adelante",        ANY) ;
        t3.datos_iniciales.add ("robot.sensor_atras",           ANY) ;
        t3.datos_iniciales.add ("robot.sensor_derecha",         0) ;
@@ -208,7 +100,8 @@ int main(int argc, char* argv[])
        t3.datos_finales.add ("robot.avanzo_izquierda",         0) ;
 
 
-       CTeoria t4("Eludir.1", "derecha", 1, 1) ;
+       CTeoria* pt4 = new CTeoria("Eludir.1", "derecha", 1, 1) ;
+       CTeoria& t4 = *pt4;
        t4.datos_iniciales.add ("robot.sensor_adelante",        1) ;
        t4.datos_iniciales.add ("robot.sensor_atras",           ANY) ;
        t4.datos_iniciales.add ("robot.sensor_derecha",         0) ;
@@ -227,10 +120,10 @@ int main(int argc, char* argv[])
        t4.datos_finales.add ("robot.avanzo_izquierda",         ANY) ;
 
 
-       a.teorias.add(t1.nombre, &t1) ;
-       a.teorias.add(t2.nombre, &t2) ;
-       a.teorias.add(t3.nombre, &t3) ;
-       a.teorias.add(t4.nombre, &t4) ;
+       a.teorias.add(t1.nombre, pt1) ;
+       a.teorias.add(t2.nombre, pt2) ;
+       a.teorias.add(t3.nombre, pt3) ;
+       a.teorias.add(t4.nombre, pt4) ;
 #ifdef DEBUG
        std::cout << "Agrega teoria: " << t1 << "\n";
        std::cout << "\tdatos_iniciales:\n" << t1.datos_iniciales << "\n";
@@ -263,9 +156,11 @@ int main(int argc, char* argv[])
 
                a.plan();
 
+
                while (a.has_next_theory())
                {
                        CTeoria* t = a.get_next_theory();
+                       // Deberia ejecutar accion y actualizar entorno
                        if (a.validate_theory(t))
                        {
                                std::cout << "Valida\n";