]> git.llucax.com Git - z.facultad/75.68/celdas.git/blob - trunk/src/breve/SistemaAutonomoDemo.tz
Se agregan la máxima cantidad de pasos al planificar y la máxima cantidad de teorías...
[z.facultad/75.68/celdas.git] / trunk / src / breve / SistemaAutonomoDemo.tz
1 @use Control.
2 @use SistemaAutonomo.
3
4 Controller SistemaAutonomoController.
5
6 Control : SistemaAutonomoController {
7
8         + to init:
9                 teorias (list).
10                 sa (object).
11                 teoria (object).
12                 entorno (hash).
13                 datos-finales (hash).
14
15                 print "Crea Sistema autonomo".
16                 sa = new SistemaAutonomo.
17                 sa init with-max-pasos 4 with-max-teorias 15.
18
19                 print "Llena entorno".
20                 entorno{"sensor1"} = 0.
21                 entorno{"sensor2"} = 0.
22                 entorno{"sensor3"} = 0.
23                 entorno{"sensor4"} = 0.
24                 entorno{"movido"} = 0.
25
26                 print "Actualiza entorno".
27                 sa update-entorno with entorno.
28
29                 print "Crea Teoria 1".
30                 teorias = 2 new Teorias.
31                 teorias{0} init named "avanzar X 1" with-action "avanzarX".
32
33                 print "Carga datos iniciales Teoria 1".
34                 (teorias{0}) set-dato-inicial name "sensor1" value ANY.
35                 (teorias{0}) set-dato-inicial name "sensor2" value ANY.
36                 (teorias{0}) set-dato-inicial name "sensor3" value ANY.
37                 (teorias{0}) set-dato-inicial name "sensor4" value ANY.
38                 (teorias{0}) set-dato-inicial name "movido" value ANY.
39
40                 print "Carga datos finales Teoria 1".
41                 (teorias{0}) set-dato-final name "sensor1" value ANY.
42                 (teorias{0}) set-dato-final name "sensor2" value ANY.
43                 (teorias{0}) set-dato-final name "sensor3" value ANY.
44                 (teorias{0}) set-dato-final name "sensor4" value ANY.
45                 (teorias{0}) set-dato-final name "movido" value ANY.
46
47                 print "Crea Teoria 2".
48                 teorias{1} init named "avanzar X 2" with-action "avanzarX".
49
50                 print "Carga datos iniciales Teoria 2".
51                 (teorias{1}) set-dato-inicial name "sensor1" value ANY.
52                 (teorias{1}) set-dato-inicial name "sensor2" value ANY.
53                 (teorias{1}) set-dato-inicial name "sensor3" value ANY.
54                 (teorias{1}) set-dato-inicial name "sensor4" value ANY.
55                 (teorias{1}) set-dato-inicial name "movido" value ANY.
56
57                 print "Carga datos finales Teoria 1".
58                 (teorias{1}) set-dato-final name "sensor1" value ANY.
59                 (teorias{1}) set-dato-final name "sensor2" value ANY.
60                 (teorias{1}) set-dato-final name "sensor3" value ANY.
61                 (teorias{1}) set-dato-final name "sensor4" value ANY.
62                 (teorias{1}) set-dato-final name "movido" value ANY.
63
64                 print "Agrega teorias al sistema autonomo".
65                 sa add teoria (teorias{0}).
66                 sa add teoria (teorias{1}).
67
68                 print "Ponemos condicion final esperada para el plan".
69                 datos-finales{"movido"} = 1.
70                 sa update-datos-finales with datos-finales.
71
72                 print "Calcula el plan".
73                 sa plan.
74
75                 print "Vemos si tiene una teoria mas".
76                 while (sa has-next-theory): {
77
78                         print "Si, tiene".
79                         print "Obtiene proxima teoria".
80                         teoria = sa get-next-theory.
81
82                         print "Obtiene datos de la teoria".
83                         print(teoria get-nombre).
84                         print(teoria get-accion).
85
86                         if ((teoria get-accion) == "avanzarX"): {
87                                 entorno{"sensor1"} = 1.
88                                 entorno{"movido"} = 1.
89                         }
90
91                         print "Valida teoria".
92                         sa update-entorno with entorno.
93                         if (sa validate theory teoria): {
94                                 print "valida".
95                         }
96                         else {
97                                 print "Teoria no valida, salimos".
98                         }
99
100                         print "Vemos si tiene una teoria mas".
101                 }
102                 print "No, no tiene".
103
104                 free teorias{0}.
105                 free teorias{1}.
106                 free sa.
107
108 }
109