08 – Vamos a practicar lo aprendido: la tortuga tiene una tortuguita

Para practicar con todo lo aprendido hasta ahora, os propongo programar el siguiente juego. Consiste en el mismo juego de persecución pero con una pequeña variante: la tortuga tiene  una super-tortuguita.

Las especificaciones del juego son las siguientes:

  • Los personajes, es decir, las clases del juego son la clase ContadorTortuga, Serpiente, Lechuga y Babytortuga.
  • Al iniciar el escenario, el mundo debe crear:
    • un Contador para mostrar las lechugas que lleva comidas la Tortuga .
    • 3 serpientes con giro aleatorio y en posiciones aleatorias del escenario.
    • 20 lechugas en posiciones aleatorias del escenario.
    • una tortuga en la posición x=50, y=400.
  • Los objetos de la clase Serpiente deben tener el siguiente comportamiento:
    • moverse de 5 en 5 píxels en línea recta por el escenario.
    • al llegar al borde del escenario girar con el ángulo de giro que tenga predeterminado desde su nacimiento.
    • si en algún momento toca a la tortuga grande, se la debe comer y se acaba el juego sonando el sonido game_over.
  • Los objetos de la clase Tortuga deben tener el siguiente comportamiento:
    • debe tener un atributo privado de nombre hija que será la referencia a su tortuga hija, un objeto de tipo BabyTortuga.
    • debe tener un constructor que le asigne al atributo hija la BabyTortuga (objeto de dicha clase) que se crea al iniciarse el escenario.
    • debe tener un atributo privado de nombre lechugasComidas, de tipo entero, para acumular las lechugas que se vaya comiendo.
    • la tortuga avanzará de 6 en 6 píxeles por el escenario. Al presionar las teclas flecha izquierda o flecha derecha, la tortuga girará 5 grados a la derecha o a la izquierda, respectivamente. Además, si se pulsa la barra espaciadora (“space”), la tortuga deberá detenerse hasta que se libere la pulsación de la barra de espacio.
    • cuando pase por encima de una lechuga, debe comérsela y sonará el sonido slurp. Además, acumulará una unidad en su atributo lechugasComidas y, también, alimentará a su hija, invocando al método crece() de su hija.
  • La tortuga hija, de la clase BabyTortuga, debe tener el siguiente comportamiento:
    • debe tener un atributo privado de nombre crecimiento, que irá aumentando a medida que su madre coma lechugas. Al nacer la BabyTortuga, crecimiento tendrá un valor de 0;
    • para aumentar su crecimiento, deberá tener un método crece(), que al ser invocado por su madre aumentará en uno el atributo privado crecimiento.
    • debe tener un atributo privado serpientesComidas que acumulará el número de serpientes que se ha comido (sí, cuando crezca comerá serpientes!)
    • cuando el atributo crecimiento tenga un valor igual a 5, deberá cambiar su aspecto de pequeña a grande (crecerá) cambiándose la piel (la imagen de la clase) por la de la tortuga de caparazón negro.
    • cuando la tortuguita haya crecido, puede moverse. La tortuga hija ya crecida avanzará de 7 en 7 píxeles por el escenario. Al presionar las teclas “a” o “d”, la tortuga girará 5 grados a la izquierda o a la derecha, respectivamente.
    • la tortuga negra es evolución de su madre, y ha ganado la capacidad de comer serpientes. Cuando pase por encima de una, se la comerá y acumulará uno en su atributo serpientesComidas.
    • cuando se haya comido a las tres serpientes, el juego acabará y sonará el sonido juego ganado.

El diagrama de clases correspondiente a la especificación anterior es el siguiente.

diagramadeclase

(En la clase BabyTortuga hay que añadir el método crece() ).

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s