]> git.llucax.com Git - z.facultad/75.68/celdas.git/blob - trunk/src/SistemaAutonomoDemo.tz
CTeoria usa strings en vez de char*.
[z.facultad/75.68/celdas.git] / trunk / src / 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 "Llena entorno".
16                 entorno{"sensor"} = 0.
17                 entorno{"movido"} = 0.
18
19                 print "Crea Sistema autónomo".
20                 sa = new SistemaAutonomo.
21
22                 print "Crea Teorías".
23                 teorias = 2 new Teorias.
24                 teorias{0} init named "t1" with-action "avanza".
25                 (teorias{0}) set-dato-inicial name "sensor" value 0.
26                 (teorias{0}) set-dato-inicial name "movido" value -3000000.
27                 (teorias{0}) set-dato-final name "sensor" value -3000000.
28                 (teorias{0}) set-dato-final name "movido" value 1.
29
30                 teorias{1} init named "t2" with-action "retrocede".
31                 (teorias{1}) set-dato-inicial name "sensor" value 1.
32                 (teorias{1}) set-dato-inicial name "movido" value -3000000.
33                 (teorias{1}) set-dato-final name "sensor" value -3000000.
34                 (teorias{1}) set-dato-final name "movido" value 1.
35
36                 print "Agrega teorías al sistema autónomo".
37                 sa add teoria (teorias{0}).
38                 sa add teoria (teorias{1}).
39                 print "Actualiza entorno".
40                 sa update-entorno entorno entorno.
41                 print "Ponemos condición final esperada para el plan".
42                 datos-finales{"movido"} = 1.
43                 sa update-datos-finales datos-finales datos-finales.
44                 print "Calcula el plan".
45                 sa plan.
46                 print "Vemos si tiene una teoría más".
47                 while (sa has-next-theory): {
48                         print "Sí, tiene".
49                         print "Obtiene próxima teoría".
50                         teoria = sa get-next-theory.
51                         print "Obtiene datos de la teoría teoría".
52                         print(teoria get-nombre).
53                         print(teoria get-accion).
54                         if ((teoria get-accion) == "avanza"): {
55                                 entorno{"sensor"} = 1.
56                                 entorno{"movido"} = 1.
57                         }
58                         if ((teoria get-accion) == "retrocede"): {
59                                 entorno{"sensor"} = 0.
60                                 entorno{"movido"} = 1.
61                         }
62                         print "Valida teoría".
63                         sa update-entorno entorno entorno.
64                         if (sa validate theory teoria): {
65                                 print "valida".
66                         }
67                         else {
68                                 print "Teoria no valida, salimos".
69                         }
70                         print "Vemos si tiene una teoría más".
71                 }
72                 print "No, no tiene".
73
74                 free teorias{0}.
75                 free teorias{1}.
76                 free sa.
77
78 }
79