Make your own free website on Tripod.com

Posible solución Ejemplo 3
Bucles

Antes de realizar una implementación de nuestro problema debemos tener en cuenta algo que puede ser que se nos haya pasado por alto. Observa que en el enunciado del problema se nos dice que el Robot puede estar en cualquiera de las 4 primeras posiciones al igual que el bloque A. Por lo tanto puede ser que el bloque quede colocado en la posición 1 y el brazo en la 2. Con lo que tendremos que pensar alguna manera para hacer que el brazo, estando en cualquier posición, pueda recorrer cada una de las posiciones mirando si en ellas está el bloque A.

Pasemos a la implementación del código y a su correspondiente explicación. Esta no es la única manera que tenemos para realizar la solución, si has realizado otra implementación del código y no estás seguro de su buen funcionamiento no dudes en enviármelo.

Mientras Posición <> 1 hacer. Miramos si la posición del bloque es deferente a 1.
     MoverIzq Movemos a la izquierda.
FinMientras Pasamos otra vez al principio del Mientras.
Mientras Posición <> 5 hacer Cuando ya nos encontramos en la posición 1, empezamos otro bucle hasta la posición 5.
     Si BloqueEncima = "A" entonces Miramos en la posición actual si tenemos el bloque A encima.
          CogerBloque Si es así lo cogemos.
     FinSi Finalizamos el Si.
     MoverDer Movemos nuestro Robot una posición a la derecha
FinMientras Pasamos otra vez la principio del segundo Mientras.

En un principio lo que hemos hecho a sido mover el Robot a la posición 1 con lo que nos hemos asegurado que ninguna de las posiciones se quedase sin mirar. Puede ser que de esta forma hayamos pasado dos veces por la misma posición pero así nos aseguramos que de no dejarnos ninguna.

Cuando ya nos encontramos en la posición 1 vamos pasando posición por posición mirando en cada una de ellas si tenemos el bloque A. Si en la posición que nos encontramos está el bloque A lo cogemos y seguimos nuestro camino hasta la quinta posición, donde dará por finalizada la ejecución del programa.


Volver