Está en la página 1de 2

ST0242 – Fundamentos de programación

Taller # 4 – Objetos

0. Introducción

Karel el robot vive en un mundo simple que solo puede ejecutar unas tareas bastante simples y
que, veremos en las próximas semanas, se podrán agregar tareas más complicadas para ir
reforzando los conceptos de programación.

1. Karel el robot
a. El mundo
Karel vive en un mundo de muros impenetrables en los bordes. Contiene calles
horizontales (que van en sentido Este – Oeste) y avenidas verticales (que van de
Norte a Sur).
Se pueden agregar muros al interior del mundo, que van entre calles o avenidas.
Dentro del mundo, se pueden agregar sirenas. En esta primera etapa, las sirenas
están en la posición 1,1 del mundo.
b. Capacidades
i. Tiene tres cámaras de video que indican si tiene un muro al frente o a los
lados.
ii. Tiene una brújula interna que le indica hacia donde está mirando (Norte,
Sur, Este o al Oeste).
iii. Tiene un sensor que le indica si está parado sobre una sirena en la posición
del mundo donde se encuentre en este momento.

c. Acciones
i. encender: Enciende el robot. Debe ser la primera instrucción al usar un
robot.
ii. mover: Karel se mueve una cuadra en la dirección a donde esté mirando.
iii. girarIzquierda: Karel gira 90 grados a la izquierda, cambiando la dirección a
donde está mirando el robot. Se mantiene en la misma esquina donde esté
parado.
iv. tomarSirena: Esta acción toma exactamente una sirena de la posición
donde se encuentre Karel. Si no hay sirenas en la posición donde está, Karel
se apaga.
v. dejarSirena: Esta acción deja exactamente una sirena en la posición donde
se encuentre Karel. Si no hay sirenas en la maleta de Karel, se apaga.
vi. apagar: Apaga el robot. Debe ser la última instrucción que se coloca al usar
un robot.
d. Acciones dependientes de las capacidades
i. frenteEstaLibre: Esta acción retorna un booleano true si la cámara no
detecta muro al frente. Si hay muro al frente, retorna false.
ii. mirandoAlNorte: Esta acción retorna un booleano true si la brújula indica
que Karel está mirando al norte. En cualquier otro caso, retorna false.
iii. siSobreSirena: Esta acción retorna un booleano true si el sensor indica que
está sobre una sirena. La posición donde están las sirenas es 1,1
(actualmente) y la cantidad que hay están en la variable estática
cantidadSirenas.

2. Desarrollo del taller


a. Agregar los métodos, atributos y código que falten para completar la descripción de
la clase Karel.

Figura 1. UML de la clase Karel

3. Fecha de entrega
Se entrega el máximo el viernes 13 de marzo antes de la clase.

También podría gustarte