]> git.llucax.com Git - z.facultad/75.68/celdas.git/blobdiff - trunk/src/breve/Celdas.tz
Se cambia de lugar la purgación de teorías porque podía pasar que se purge una teoria...
[z.facultad/75.68/celdas.git] / trunk / src / breve / Celdas.tz
index 0d3ced587cacca4ef9423e8ded196509940c7ddf..7c1afdc5d79b018d6edb469e9e8104d3b3dd3fb6 100644 (file)
@@ -8,6 +8,7 @@
 \r
 @define CELDAS_MAX_VELOCITY 30.\r
 @define CELDAS_TURNO 100.\r
 \r
 @define CELDAS_MAX_VELOCITY 30.\r
 @define CELDAS_TURNO 100.\r
+@define CELDAS_SENSOR_THRESHOLD 9.\r
 \r
 PhysicalControl : CeldasControl {\r
        % This class is used for building simple vehicle \r
 \r
 PhysicalControl : CeldasControl {\r
        % This class is used for building simple vehicle \r
@@ -55,7 +56,6 @@ MultiBody : CeldasLightVehicle (aka CeldasLightVehicles) {
                bodyLink (object).\r
 \r
                wheels (list).\r
                bodyLink (object).\r
 \r
                wheels (list).\r
-               sensors (list).\r
 \r
        + to init:\r
                bodyShape = new Shape.\r
 \r
        + to init:\r
                bodyShape = new Shape.\r
@@ -211,10 +211,10 @@ CeldasLightVehicle : CeldasVehicle (aka CeldasVehicles) {
                return (fSensor get-sensor-value).\r
 \r
        +to update-entorno:\r
                return (fSensor get-sensor-value).\r
 \r
        +to update-entorno:\r
-               entorno{"sensor_f"} = (fSensor get-data).\r
-               entorno{"sensor_b"} = (bSensor get-data).\r
-               entorno{"sensor_r"} = (rSensor get-data).\r
-               entorno{"sensor_l"} = (lSensor get-data).\r
+               entorno{"sensor_f"} = (fSensor get-sensor-value).\r
+               entorno{"sensor_b"} = (bSensor get-sensor-value).\r
+               entorno{"sensor_r"} = (rSensor get-sensor-value).\r
+               entorno{"sensor_l"} = (lSensor get-sensor-value).\r
                entorno{"movido"} = 0. # TODO\r
                sa update-entorno with entorno.            \r
 \r
                entorno{"movido"} = 0. # TODO\r
                sa update-entorno with entorno.            \r
 \r
@@ -316,17 +316,17 @@ CeldasLightVehicle : CeldasVehicle (aka CeldasVehicles) {
                sa update-datos-finales with datos-finales.\r
 \r
         +to iterate:\r
                sa update-datos-finales with datos-finales.\r
 \r
         +to iterate:\r
-               fl, fr(float).\r
+               self update-entorno.\r
 \r
                if (0): # TODO posicion_final == posicion_actual\r
                {\r
                        print "Llegamos al FINAL!!!".\r
 \r
                if (0): # TODO posicion_final == posicion_actual\r
                {\r
                        print "Llegamos al FINAL!!!".\r
+                       self set-global-velocity to 0.\r
                        return.\r
                }\r
 \r
                if (plan_finished):\r
                {\r
                        return.\r
                }\r
 \r
                if (plan_finished):\r
                {\r
-                       self update-entorno.\r
                        sa plan. # Si no tenemos plan, lo hacemos\r
                        plan_finished = 0.\r
                        # TODO posicion_inicial = posicion_actual\r
                        sa plan. # Si no tenemos plan, lo hacemos\r
                        plan_finished = 0.\r
                        # TODO posicion_inicial = posicion_actual\r
@@ -340,10 +340,8 @@ CeldasLightVehicle : CeldasVehicle (aka CeldasVehicles) {
 \r
                if (iterate == 0):\r
                {\r
 \r
                if (iterate == 0):\r
                {\r
-                       print "iteracion 0".\r
                        if (sa has-next-theory):\r
                        {\r
                        if (sa has-next-theory):\r
                        {\r
-                               print "hay teoria".\r
                                teoria = sa get-next-theory.\r
                                if ((teoria get-accion) == "adelante"):\r
                                {\r
                                teoria = sa get-next-theory.\r
                                if ((teoria get-accion) == "adelante"):\r
                                {\r
@@ -378,15 +376,12 @@ CeldasLightVehicle : CeldasVehicle (aka CeldasVehicles) {
 \r
                if (iterate == CELDAS_TURNO):\r
                {\r
 \r
                if (iterate == CELDAS_TURNO):\r
                {\r
-                       self update-entorno.\r
                        # TODO if (posicion_actual == posicion_inicial): movido = false. else movido = true.\r
                        if (sa validate theory teoria):\r
                        {\r
                        # TODO if (posicion_actual == posicion_inicial): movido = false. else movido = true.\r
                        if (sa validate theory teoria):\r
                        {\r
-                               print "valida".\r
                        }\r
                        else\r
                        {\r
                        }\r
                        else\r
                        {\r
-                               print "Teoria no valida".\r
                                plan_finished = 1.\r
                        }\r
                }\r
                                plan_finished = 1.\r
                        }\r
                }\r
@@ -523,6 +518,11 @@ Link : CeldasSensor (aka CeldasSensors) {
                % Gets the sensor value. This should be used from post-iterate,\r
                % if not, the sensor reading correspond to the previous\r
                % iteration.\r
                % Gets the sensor value. This should be used from post-iterate,\r
                % if not, the sensor reading correspond to the previous\r
                % iteration.\r
+               val (float).\r
+\r
+               val = self get-data.\r
+               if (val > CELDAS_SENSOR_THRESHOLD): return 0.\r
+               else           return 1.\r
         \r
         #+ to iterate:\r
         \r
         \r
         #+ to iterate:\r
         \r
@@ -530,16 +530,10 @@ Link : CeldasSensor (aka CeldasSensors) {
                i (object).\r
                min,dist (float).\r
                 v,obs(vector).\r
                i (object).\r
                min,dist (float).\r
                 v,obs(vector).\r
-               aux(float).\r
                j (int).\r
                des2,des3(int).\r
                wallBegin,wallEnd,wallCenter (float).\r
                j (int).\r
                des2,des3(int).\r
                wallBegin,wallEnd,wallCenter (float).\r
-                \r
-               toObstacle(vector).\r
-                largeWall (float).\r
-                \r
                 obsLoc (vector).                \r
                 obsLoc (vector).                \r
-                location (vector).\r
                 posObstacle,destiny,yo(vector).\r
                                              \r
                draw clear.\r
                 posObstacle,destiny,yo(vector).\r
                                              \r
                draw clear.\r