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* pt1 = new CTeoria("Avanzar", "avanzar", 1, 1) ;
46 t1.datos_iniciales.add ("robot.sensor_adelante", 0) ;
47 t1.datos_iniciales.add ("robot.sensor_atras", ANY) ;
48 t1.datos_iniciales.add ("robot.sensor_derecha", ANY) ;
49 t1.datos_iniciales.add ("robot.sensor_izquierda", ANY) ;
50 t1.datos_iniciales.add ("robot.avanzo_adelante", ANY) ;
51 t1.datos_iniciales.add ("robot.avanzo_atras", ANY) ;
52 t1.datos_iniciales.add ("robot.avanzo_derecha", ANY) ;
53 t1.datos_iniciales.add ("robot.avanzo_izquierda", ANY) ;
54 t1.datos_finales.add ("robot.sensor_adelante", ANY) ;
55 t1.datos_finales.add ("robot.sensor_atras", ANY) ;
56 t1.datos_finales.add ("robot.sensor_derecha", ANY) ;
57 t1.datos_finales.add ("robot.sensor_izquierda", ANY) ;
58 t1.datos_finales.add ("robot.avanzo_adelante", 1) ;
59 t1.datos_finales.add ("robot.avanzo_atras", 0) ;
60 t1.datos_finales.add ("robot.avanzo_derecha", 0) ;
61 t1.datos_finales.add ("robot.avanzo_izquierda", 0) ;
63 CTeoria* pt2 = new CTeoria("Retroceder", "retroceder", 1, 1) ;
65 t2.datos_iniciales.add ("robot.sensor_adelante", ANY) ;
66 t2.datos_iniciales.add ("robot.sensor_atras", 0) ;
67 t2.datos_iniciales.add ("robot.sensor_derecha", ANY) ;
68 t2.datos_iniciales.add ("robot.sensor_izquierda", ANY) ;
69 t2.datos_iniciales.add ("robot.avanzo_adelante", ANY) ;
70 t2.datos_iniciales.add ("robot.avanzo_atras", ANY) ;
71 t2.datos_iniciales.add ("robot.avanzo_derecha", ANY) ;
72 t2.datos_iniciales.add ("robot.avanzo_izquierda", ANY) ;
73 t2.datos_finales.add ("robot.sensor_adelante", ANY) ;
74 t2.datos_finales.add ("robot.sensor_atras", ANY) ;
75 t2.datos_finales.add ("robot.sensor_derecha", ANY) ;
76 t2.datos_finales.add ("robot.sensor_izquierda", ANY) ;
77 t2.datos_finales.add ("robot.avanzo_adelante", 0) ;
78 t2.datos_finales.add ("robot.avanzo_atras", 1) ;
79 t2.datos_finales.add ("robot.avanzo_derecha", 0) ;
80 t2.datos_finales.add ("robot.avanzo_izquierda", 0) ;
83 CTeoria* pt3 = new CTeoria("Derecha", "derecha", 1, 1) ;
85 t3.datos_iniciales.add ("robot.sensor_adelante", ANY) ;
86 t3.datos_iniciales.add ("robot.sensor_atras", ANY) ;
87 t3.datos_iniciales.add ("robot.sensor_derecha", 0) ;
88 t3.datos_iniciales.add ("robot.sensor_izquierda", ANY) ;
89 t3.datos_iniciales.add ("robot.avanzo_adelante", ANY) ;
90 t3.datos_iniciales.add ("robot.avanzo_atras", ANY) ;
91 t3.datos_iniciales.add ("robot.avanzo_derecha", ANY) ;
92 t3.datos_iniciales.add ("robot.avanzo_izquierda", ANY) ;
93 t3.datos_finales.add ("robot.sensor_adelante", ANY) ;
94 t3.datos_finales.add ("robot.sensor_atras", ANY) ;
95 t3.datos_finales.add ("robot.sensor_derecha", ANY) ;
96 t3.datos_finales.add ("robot.sensor_izquierda", ANY) ;
97 t3.datos_finales.add ("robot.avanzo_adelante", 0) ;
98 t3.datos_finales.add ("robot.avanzo_atras", 0) ;
99 t3.datos_finales.add ("robot.avanzo_derecha", 1) ;
100 t3.datos_finales.add ("robot.avanzo_izquierda", 0) ;
103 CTeoria* pt4 = new CTeoria("Eludir.1", "derecha", 1, 1) ;
105 t4.datos_iniciales.add ("robot.sensor_adelante", 1) ;
106 t4.datos_iniciales.add ("robot.sensor_atras", ANY) ;
107 t4.datos_iniciales.add ("robot.sensor_derecha", 0) ;
108 t4.datos_iniciales.add ("robot.sensor_izquierda", ANY) ;
109 t4.datos_iniciales.add ("robot.avanzo_adelante", ANY) ;
110 t4.datos_iniciales.add ("robot.avanzo_atras", ANY) ;
111 t4.datos_iniciales.add ("robot.avanzo_derecha", ANY) ;
112 t4.datos_iniciales.add ("robot.avanzo_izquierda", ANY) ;
113 t4.datos_finales.add ("robot.sensor_adelante", 0) ;
114 t4.datos_finales.add ("robot.sensor_atras", ANY) ;
115 t4.datos_finales.add ("robot.sensor_derecha", ANY) ;
116 t4.datos_finales.add ("robot.sensor_izquierda", ANY) ;
117 t4.datos_finales.add ("robot.avanzo_adelante", 0) ;
118 t4.datos_finales.add ("robot.avanzo_atras", ANY) ;
119 t4.datos_finales.add ("robot.avanzo_derecha", 1) ;
120 t4.datos_finales.add ("robot.avanzo_izquierda", ANY) ;
123 a.teorias.add(t1.nombre, pt1) ;
124 a.teorias.add(t2.nombre, pt2) ;
125 a.teorias.add(t3.nombre, pt3) ;
126 a.teorias.add(t4.nombre, pt4) ;
128 std::cout << "Agrega teoria: " << t1 << "\n";
129 std::cout << "\tdatos_iniciales:\n" << t1.datos_iniciales << "\n";
130 std::cout << "\tdatos_finales:\n" << t1.datos_finales << "\n";
131 std::cout << "Agrega teoria: " << t2 << "\n";
132 std::cout << "\tdatos_iniciales:\n" << t2.datos_iniciales << "\n";
133 std::cout << "\tdatos_finales:\n" << t2.datos_finales << "\n";
134 std::cout << "Agrega teoria: " << t3 << "\n";
135 std::cout << "\tdatos_iniciales:\n" << t3.datos_iniciales << "\n";
136 std::cout << "\tdatos_finales:\n" << t3.datos_finales << "\n";
137 std::cout << "Agrega teoria: " << t4 << "\n";
138 std::cout << "\tdatos_iniciales:\n" << t4.datos_iniciales << "\n";
139 std::cout << "\tdatos_finales:\n" << t4.datos_finales << "\n";
147 CIndiceMagico<t_dato> datos_finales;
149 a.m_datos_finales.add ("robot.avanzo_adelante", 1) ;
150 //a.m_datos_finales.add ("robot.avanzo_en_x", 1) ;
152 for (int i = 0; i < 3; ++i)
155 while (a.has_next_theory())
157 CTeoria* t = a.get_next_theory();
158 // Deberia ejecutar accion y actualizar entorno
159 if (a.validate_theory(t))
161 std::cout << "Valida\n";
165 std::cout << "No valida, planificamos de nuevo\n";