X-Git-Url: https://git.llucax.com/z.facultad/75.68/celdas.git/blobdiff_plain/651df9d4bd2ec484ec71c80d7dd2165d7cf4290e..2a0c7d1e56dfff663c1fbcaaf39b4e00140a0121:/trunk/src/main.cpp?ds=sidebyside diff --git a/trunk/src/main.cpp b/trunk/src/main.cpp index ea0826e..10da19f 100644 --- a/trunk/src/main.cpp +++ b/trunk/src/main.cpp @@ -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";