sa (object).
teoria (object).
entorno (hash).
+ datos-finales (hash).
print "Llena entorno".
- entorno{"sensor1"} = 10.5.
- entorno{"sensor2"} = 1.5.
+ entorno{"sensor"} = 0.
+ entorno{"movido"} = 0.
print "Crea Sistema autónomo".
sa = new SistemaAutonomo.
print "Crea Teorías".
- 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.
-
- print "Carga datos a las teorías".
- (teorias{0}) set-dato-inicial name "sensor1" value 10.5.
- (teorias{0}) set-dato-inicial name "sensor2" value 0.5.
- (teorias{1}) set-dato-inicial name "sensor1" value 0.5.
- (teorias{1}) set-dato-inicial name "sensor2" value 10.5.
- (teorias{2}) set-dato-inicial name "sensor1" value 5.5.
- (teorias{2}) set-dato-inicial name "sensor2" value 5.5.
+ 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.
+ 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 "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).
- print "Valida teoría".
- if (sa validate theory teoria): {
- print "valida".
+ 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.
}