Practica 2
Orientación a Objetos 1 2015
Práctica 2
Introducción:
En esta práctica deberá utilizar el ambiente del robot en una versión más avanzada, para ello copie,
pegue en el Playground y ejecute el siguiente código:
BGSArenaWindow expertViewOn: (OnTheFlyConfigurableSimulation batteryWalkingBrush).
Ejercicio 1
El mundo de robots de esta práctica ya no tiene un robot al comenzar. El mismo debe agregarse
explícitamente por medio del botón etiquetado “Agregar Robot”. Al agregar un robot debe indicar el
nombre con el que se lo referenciará (en este caso sugerimos utilizar la variable
robotech
). También
es posible agregar un robot haciendo click en cualquier posición de la arena; en este caso el robot se
ubicará en la posición clickeada. Extienda el comportamiento del robot para que sea capaz de entender
los siguientes mensajes. Compruebe que el robot
robotech reacciona correctamente. Recuerde incluir
el comentario del método en la definición de cada uno.
0) #position:aPoint
“Posiciona al robot en la celda aPoint de la arena. Ayuda: ver def de
#position”
1) #squareOfSize: aSize “Realiza un cuadrado con una esquina en su posición actual y de lado aSize.”
2) #squareOfSize: aSize at: aPoint
“Realiza un cuadrado con una esquina en el punto aPoint y de lado aSize.”
3) #squareAtHomeOfSize: aSize
“Realiza un cuadrado con una esquina en 25@25 y de lado aSize.”
4) #rotatedSquareOfSize: aSize
“Realiza un cuadrado con una esquina en su posición actual, de lado aSize,
rotado 45 grados.” 5) #rotatedSquareOfSize: aSize at:aPoint
“Realiza un cuadrado con una esquina en aPoint, de lado aSize, rotado 45
grados.”
Nota: implemente los métodos reutilizando los métodos previamente definidos.
Ejercicio 2
Agregue otro robot al que conocerá por medio de la variable afrodita
. Compruebe que la robot
afrodita entiende los mensajes definidos en el Ejercicio 1 y reacciona de igual forma que el robot
robotech
. ¿Qué sucede si modifica uno de los métodos? ¿Siguen comportándose ambos robots de
igual manera? ¿Por qué? Discuta el por qué con un ayudante.
Orientación a Objetos 1 2015
https://sites.google.com/site/objetos12015/home
Orientación a Objetos 1 2015
Práctica 2
Ejercicio 3: PatrolCouple Una PatrolCouple (pareja de guardia) está formada por dos robots: uno conocido como
patrol
(patrulla)
y el otro conocido como
sniper
(francotirador).
1.
2.
3.
Defina la clase PatrolCouple y cree una instancia en el Playground. PatrolCouple debe
implementar el mensaje
#patrol: sniper:
que toma dos robots como parámetros y los guarda en
las variables de instancia que correspondan. Cree dos robos diferentes para que sean
patrol
y
sniper r
espectivamente. Cree una instancia
de PatrolCouple. Por último, envíe el mensaje
#patrol: sniper:
con los robots como parámetros
de instancia de PatrolCouple.
Según lo visto en la teoría, implemente el o los métodos necesarios para que se puedan
inicializar las instancias de PatrolCouple con los robots que lo conforman por medio de un método de clase que se encargue de la “creación e inicialización”.
Ejercicio 4: PatrolCouple con comportamiento
En este ejercicio agregaremos comportamiento a
PatrolCouple
con la siguiente definición de
mensajes:
#reset
"Ambos robots se posicionan enfrentados a distancia 5 uno del otro (uno mira
al south y el otro al north, uno de ellos posicionado en 20@20"
#regularPatrol "patrol hace un cuadrado de lado 10 rotado 45 grados alrededor de sniper,
sniper en el centro gira en sentido de las agujas del reloj."
#regularPatrolTrace
"Similar a regularPatrol pero patrol realiza un trazo con el brush"
#doTheRegularPatrol
"Los guardias repiten regularPatrol 5 veces, pero luego de cada una se corren
5 hacia el este. Considere usar bateria con suficiente carga" ...
Regístrate para leer el documento completo.