6 void CMiEntorno::inicializar()
8 // Inicializo el Entorno
9 datos.add("robot.sensor_adelante", 1) ;
10 datos.add("robot.sensor_atras", 0) ;
11 datos.add("robot.sensor_derecha", 0) ;
12 datos.add("robot.sensor_izquierda", 0) ;
13 datos.add("robot.avanzo_adelante", 0) ;
14 datos.add("robot.avanzo_atras", 0) ;
15 datos.add("robot.avanzo_derecha", 0) ;
16 datos.add("robot.avanzo_izquierda", 0) ;
20 void CMiEntorno::actualizar()
22 datos.set_val("robot.sensor_adelante", 0) ;
23 datos.set_val("robot.sensor_atras", 0) ;
24 datos.set_val("robot.sensor_derecha", 0) ;
25 datos.set_val("robot.sensor_izquierda", 1) ;
26 datos.set_val("robot.avanzo_adelante", 1) ;
27 datos.set_val("robot.avanzo_atras", 0) ;
28 datos.set_val("robot.avanzo_derecha", 0) ;
29 datos.set_val("robot.avanzo_izquierda", 0) ;
35 int main(int argc, char* argv[])
38 CMiEntorno* e = new CMiEntorno;
43 // Inicializo las teorias
44 CTeoria t1("Avanzar", "avanzar", 1, 1) ;
45 t1.datos_iniciales.add ("robot.sensor_adelante", 0) ;
46 t1.datos_iniciales.add ("robot.sensor_atras", ANY) ;
47 t1.datos_iniciales.add ("robot.sensor_derecha", ANY) ;
48 t1.datos_iniciales.add ("robot.sensor_izquierda", ANY) ;
49 t1.datos_iniciales.add ("robot.avanzo_adelante", ANY) ;
50 t1.datos_iniciales.add ("robot.avanzo_atras", ANY) ;
51 t1.datos_iniciales.add ("robot.avanzo_derecha", ANY) ;
52 t1.datos_iniciales.add ("robot.avanzo_izquierda", ANY) ;
53 t1.datos_finales.add ("robot.sensor_adelante", ANY) ;
54 t1.datos_finales.add ("robot.sensor_atras", ANY) ;
55 t1.datos_finales.add ("robot.sensor_derecha", ANY) ;
56 t1.datos_finales.add ("robot.sensor_izquierda", ANY) ;
57 t1.datos_finales.add ("robot.avanzo_adelante", 1) ;
58 t1.datos_finales.add ("robot.avanzo_atras", 0) ;
59 t1.datos_finales.add ("robot.avanzo_derecha", 0) ;
60 t1.datos_finales.add ("robot.avanzo_izquierda", 0) ;
63 CTeoria t2("Retroceder", "retroceder", 1, 1) ;
64 t2.datos_iniciales.add ("robot.sensor_adelante", ANY) ;
65 t2.datos_iniciales.add ("robot.sensor_atras", 0) ;
66 t2.datos_iniciales.add ("robot.sensor_derecha", ANY) ;
67 t2.datos_iniciales.add ("robot.sensor_izquierda", ANY) ;
68 t2.datos_iniciales.add ("robot.avanzo_adelante", ANY) ;
69 t2.datos_iniciales.add ("robot.avanzo_atras", ANY) ;
70 t2.datos_iniciales.add ("robot.avanzo_derecha", ANY) ;
71 t2.datos_iniciales.add ("robot.avanzo_izquierda", ANY) ;
72 t2.datos_finales.add ("robot.sensor_adelante", ANY) ;
73 t2.datos_finales.add ("robot.sensor_atras", ANY) ;
74 t2.datos_finales.add ("robot.sensor_derecha", ANY) ;
75 t2.datos_finales.add ("robot.sensor_izquierda", ANY) ;
76 t2.datos_finales.add ("robot.avanzo_adelante", 0) ;
77 t2.datos_finales.add ("robot.avanzo_atras", 1) ;
78 t2.datos_finales.add ("robot.avanzo_derecha", 0) ;
79 t2.datos_finales.add ("robot.avanzo_izquierda", 0) ;
82 CTeoria t3("Derecha", "derecha", 1, 1) ;
83 t3.datos_iniciales.add ("robot.sensor_adelante", ANY) ;
84 t3.datos_iniciales.add ("robot.sensor_atras", ANY) ;
85 t3.datos_iniciales.add ("robot.sensor_derecha", 0) ;
86 t3.datos_iniciales.add ("robot.sensor_izquierda", ANY) ;
87 t3.datos_iniciales.add ("robot.avanzo_adelante", ANY) ;
88 t3.datos_iniciales.add ("robot.avanzo_atras", ANY) ;
89 t3.datos_iniciales.add ("robot.avanzo_derecha", ANY) ;
90 t3.datos_iniciales.add ("robot.avanzo_izquierda", ANY) ;
91 t3.datos_finales.add ("robot.sensor_adelante", ANY) ;
92 t3.datos_finales.add ("robot.sensor_atras", ANY) ;
93 t3.datos_finales.add ("robot.sensor_derecha", ANY) ;
94 t3.datos_finales.add ("robot.sensor_izquierda", ANY) ;
95 t3.datos_finales.add ("robot.avanzo_adelante", 0) ;
96 t3.datos_finales.add ("robot.avanzo_atras", 0) ;
97 t3.datos_finales.add ("robot.avanzo_derecha", 1) ;
98 t3.datos_finales.add ("robot.avanzo_izquierda", 0) ;
101 CTeoria t4("Eludir.1", "derecha", 1, 1) ;
102 t4.datos_iniciales.add ("robot.sensor_adelante", 1) ;
103 t4.datos_iniciales.add ("robot.sensor_atras", ANY) ;
104 t4.datos_iniciales.add ("robot.sensor_derecha", 0) ;
105 t4.datos_iniciales.add ("robot.sensor_izquierda", ANY) ;
106 t4.datos_iniciales.add ("robot.avanzo_adelante", ANY) ;
107 t4.datos_iniciales.add ("robot.avanzo_atras", ANY) ;
108 t4.datos_iniciales.add ("robot.avanzo_derecha", ANY) ;
109 t4.datos_iniciales.add ("robot.avanzo_izquierda", ANY) ;
110 t4.datos_finales.add ("robot.sensor_adelante", 0) ;
111 t4.datos_finales.add ("robot.sensor_atras", ANY) ;
112 t4.datos_finales.add ("robot.sensor_derecha", ANY) ;
113 t4.datos_finales.add ("robot.sensor_izquierda", ANY) ;
114 t4.datos_finales.add ("robot.avanzo_adelante", 0) ;
115 t4.datos_finales.add ("robot.avanzo_atras", ANY) ;
116 t4.datos_finales.add ("robot.avanzo_derecha", 1) ;
117 t4.datos_finales.add ("robot.avanzo_izquierda", ANY) ;
120 a.teorias.add(t1.nombre, &t1) ;
121 a.teorias.add(t2.nombre, &t2) ;
122 a.teorias.add(t3.nombre, &t3) ;
123 a.teorias.add(t4.nombre, &t4) ;
125 std::cout << "Agrega teoria: " << t1 << "\n";
126 std::cout << "\tdatos_iniciales:\n" << t1.datos_iniciales << "\n";
127 std::cout << "\tdatos_finales:\n" << t1.datos_finales << "\n";
128 std::cout << "Agrega teoria: " << t2 << "\n";
129 std::cout << "\tdatos_iniciales:\n" << t2.datos_iniciales << "\n";
130 std::cout << "\tdatos_finales:\n" << t2.datos_finales << "\n";
131 std::cout << "Agrega teoria: " << t3 << "\n";
132 std::cout << "\tdatos_iniciales:\n" << t3.datos_iniciales << "\n";
133 std::cout << "\tdatos_finales:\n" << t3.datos_finales << "\n";
134 std::cout << "Agrega teoria: " << t4 << "\n";
135 std::cout << "\tdatos_iniciales:\n" << t4.datos_iniciales << "\n";
136 std::cout << "\tdatos_finales:\n" << t4.datos_finales << "\n";
144 CIndiceMagico<t_dato> datos_finales;
146 a.m_datos_finales.add ("robot.avanzo_adelante", 1) ;
147 //a.m_datos_finales.add ("robot.avanzo_en_x", 1) ;
149 for (int i = 0; i < 3; ++i)
152 std::cout << "Teorias:\n" << a.teorias << "\n";
157 while (a.has_next_theory())
159 CTeoria* t = a.get_next_theory();
160 // Deberia ejecutar accion y actualizar entorno
161 if (a.validate_theory(t))
163 std::cout << "Valida\n";
167 std::cout << "No valida, planificamos de nuevo\n";