+ to init:
teorias (list).
sa (object).
+ teoria (object).
+ entorno (hash).
+ datos-finales (hash).
+ print "Llena entorno".
+ entorno{"sensor"} = 0.
+ entorno{"movido"} = 0.
+
+ print "Crea Sistema autónomo".
sa = new SistemaAutonomo.
- teorias = 3 new Teorias.
- teorias{0} init named "t1" with-action 1.
- teorias{1} init named "t2" with-action 2.
- teorias{2} init named "t3" with-action 3.
-
- (teorias{0}) add-dato-inicial name "sensor1" value 10.5.
- (teorias{0}) add-dato-inicial name "sensor2" value 0.5.
- (teorias{1}) add-dato-inicial name "sensor1" value 0.5.
- (teorias{1}) add-dato-inicial name "sensor2" value 10.5.
- (teorias{2}) add-dato-inicial name "sensor1" value 5.5.
- (teorias{2}) add-dato-inicial name "sensor2" value 5.5.
+ print "Crea Teorías".
+ teorias = 2 new Teorias.
+ teorias{0} init named "t1" with-action "avanza".
+ (teorias{0}) set-dato-inicial name "sensor" value 0.
+ (teorias{0}) set-dato-inicial name "movido" value -3000000.
+ (teorias{0}) set-dato-final name "sensor" value -3000000.
+ (teorias{0}) set-dato-final name "movido" value 1.
+
+ teorias{1} init named "t2" with-action "retrocede".
+ (teorias{1}) set-dato-inicial name "sensor" value 1.
+ (teorias{1}) set-dato-inicial name "movido" value -3000000.
+ (teorias{1}) set-dato-final name "sensor" value -3000000.
+ (teorias{1}) set-dato-final name "movido" value 1.
+
+ print "Agrega teorías al sistema autónomo".
sa add teoria (teorias{0}).
sa add teoria (teorias{1}).
- sa add teoria (teorias{2}).
+ print "Actualiza entorno".
+ sa update-entorno entorno entorno.
+ print "Ponemos condición final esperada para el plan".
+ datos-finales{"movido"} = 1.
+ sa update-datos-finales datos-finales datos-finales.
+ print "Calcula el plan".
+ sa plan.
+ print "Vemos si tiene una teoría más".
+ while (sa has-next-theory): {
+ print "Sí, tiene".
+ print "Obtiene próxima teoría".
+ teoria = sa get-next-theory.
+ print "Obtiene datos de la teoría teoría".
+ print(teoria get-nombre).
+ print(teoria get-accion).
+ if ((teoria get-accion) == "avanza"): {
+ entorno{"sensor"} = 1.
+ entorno{"movido"} = 1.
+ }
+ if ((teoria get-accion) == "retrocede"): {
+ entorno{"sensor"} = 0.
+ entorno{"movido"} = 1.
+ }
+ print "Valida teoría".
+ sa update-entorno entorno entorno.
+ if (sa validate theory teoria): {
+ print "valida".
+ }
+ else {
+ print "Teoria no valida, salimos".
+ }
+ print "Vemos si tiene una teoría más".
+ }
+ print "No, no tiene".
free teorias{0}.
free teorias{1}.
- free teorias{2}.
free sa.
}