19-12-2013, 15:00
Gente, no tengo idea como encarar este ejercicio de objetos, a ver si algún alma bondadosa e inteligente me ayuda, cualquier aporte será bien recibido . El enunciado dice así:
En un juego de ping pong, bidimiensional y muy simple, se tiene el sig. requerimiento: cada vez que la pelota es golpeada por la paleta, su dirección se modifica según la inclinación de la paleta.
#Paleta
golpearA:unaPelota
unaPelota direccion := unaPelota direccion + self inclinacion
#Pelota (vi:direccion)
direccion:algo
direccion:=algo
direccion
^direccion
a- ¿Funciona? En caso afirmativo mostrar un ejemplo de uso y en caso negativo corregirla.
b- ¿Qué se puede decir del encapsulamiento y la delegación? Hacer una nueva versión para aplicar de la mejor manera estos conceptos.
c- ¿Tiene efecto colateral golpear la pelota? ¿Dónde?
2. Hacer una solución en Haskell que resuelva el mismo problema. Explicar que sentido tienen los conceptos anteriores en la presente solución.
3. Un fanático de béisbol quiere plantear modificaciones en el juego, como por ejemplo golpear la pelota con un bate. En este caso, la dirección de la pelota se modifica según un angulo del golpe que depende de la posición de la pelota en relación al bate. Se planteó esta solución:
#Pelota
esGolpeadaPor:unBate
direccion := direccion + unBate anguloDeGolpe: self posicion
A su vez un jugador puede tener en su mano una paleta o un bate y quiere poder pegarle a una pelota con él.
¿La solución planteada en objetos soporta este requerimiento? Justificar en caso afirmativo, o completarla o corregirla en caso contrario.
Gracias, gracias, gracias!
En un juego de ping pong, bidimiensional y muy simple, se tiene el sig. requerimiento: cada vez que la pelota es golpeada por la paleta, su dirección se modifica según la inclinación de la paleta.
#Paleta
golpearA:unaPelota
unaPelota direccion := unaPelota direccion + self inclinacion
#Pelota (vi:direccion)
direccion:algo
direccion:=algo
direccion
^direccion
a- ¿Funciona? En caso afirmativo mostrar un ejemplo de uso y en caso negativo corregirla.
b- ¿Qué se puede decir del encapsulamiento y la delegación? Hacer una nueva versión para aplicar de la mejor manera estos conceptos.
c- ¿Tiene efecto colateral golpear la pelota? ¿Dónde?
2. Hacer una solución en Haskell que resuelva el mismo problema. Explicar que sentido tienen los conceptos anteriores en la presente solución.
3. Un fanático de béisbol quiere plantear modificaciones en el juego, como por ejemplo golpear la pelota con un bate. En este caso, la dirección de la pelota se modifica según un angulo del golpe que depende de la posición de la pelota en relación al bate. Se planteó esta solución:
#Pelota
esGolpeadaPor:unBate
direccion := direccion + unBate anguloDeGolpe: self posicion
A su vez un jugador puede tener en su mano una paleta o un bate y quiere poder pegarle a una pelota con él.
¿La solución planteada en objetos soporta este requerimiento? Justificar en caso afirmativo, o completarla o corregirla en caso contrario.
Gracias, gracias, gracias!