4 Controller SistemaAutonomoController.
6 Control : SistemaAutonomoController {
15 print "Llena entorno".
16 entorno{"sensor"} = 0.
17 entorno{"movido"} = 0.
19 print "Crea Sistema autónomo".
20 sa = new SistemaAutonomo.
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.
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.
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".
46 print "Vemos si tiene una teoría más".
47 while (sa has-next-theory): {
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.
58 if ((teoria get-accion) == "retrocede"): {
59 entorno{"sensor"} = 0.
60 entorno{"movido"} = 1.
62 print "Valida teoría".
63 sa update-entorno entorno entorno.
64 if (sa validate theory teoria): {
68 print "Teoria no valida, salimos".
70 print "Vemos si tiene una teoría más".