[Ayuda] [C++] Juego de la víbora

Iniciado por Wofo, 15 Marzo 2013, 16:37 PM

0 Miembros y 1 Visitante están viendo este tema.

Wofo

Buenas, escribo porque estoy desarrollando el clásico juego de la víbora y estoy un poco confundido con el enfoque de orientiación a objetos que debo seguir.

Por un lado tengo el objeto Víbora y por el otro Comida. La víbora contiene un array de puntos (con lo que la puedo mostrar en pantalla) y la comida contiene un punto.

El movimiento de la víbora está controlado por el método Víbora::mover(), que funciona perfectamente. El problema es que desde ese método no puedo comprobar si la víbora pasa por encima de una comida (y, por lo tanto, se la come), porque el objeto Comida no está dentro de la clase víbora (está en el main).

Son dos objetos separados, como muestra el ejemplo.
Código (cpp) [Seleccionar]
int main() {
Vibora vibora;
Comida comida;
}


Alternativas que se me ocurren:
-Comprobar desde el main si la víbora come algo (me da la impresión que es una solución sucia y que debe haber alguna otra mejor).
-Crear el objeto Comida dentro de la clase Víbora (sería como forzar la orientación a objetos ya que no existe relación entre Comida y Víbora).

Ambas alternativas me parecen malas. ¿Alguien tiene una mejor idea?

Espero haberme explicado bien. Si no, decidme y lo intento otra vez.

Muchas gracias,
Wofo.

amchacon

¡Oh! ¡Que ilusión! Yo hize un juego de esos en mis tiempos. Tenía editor de niveles y todo:
https://dl.dropbox.com/u/69551225/Snake%20-%20Amchacon.rar

Al tema, yo lo que hize es que la clase Campo se encargase de las comprobaciones de colisión (entre las que se incluye Comida). Lo unico que necesitaba esque las clases Vibora y Comida les pasasen las coordenadas correspondientes.

Otra idea es usar los métodos friend (o metodos compartidos):
http://c.conclase.net/curso/?cap=032#inicio

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

Wofo

#2
¡Hombre muchas gracias!

Revisaré los recursos que me diste a ver qué tal me va. Estuve probando tu Snake y me gustó bastante aunque cuando entré a "Opciones" murió. ¿Tienes el source por ahí?

Saludos,
Wofo.

amchacon

Fallo mío, se me olvido añadir algunos archivos. Vuelvetelo a bajar (por cierto lo de borrar nivel no lo llegué a implementar).

El código si quieres te lo dejo, pero lleva ya su tiempo y no es muy... Limpio xD:
https://dl.dropbox.com/u/69551225/Snake%20codigo%20-%20amchacon.rar

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

$Edu$

No necesitas hacer que Comer sea una clase, puede ser solo un metodo de la clase Vibora.

Wofo

@amchacon
No te preocupes porque sea poco limpio. De todas maneras me servirá para aprender.

@Edu
Concuerdo contigo en que no es necesario que comer sea una clase. Sin embargo, creo que "Comida" sí puede ser una clase, donde tenga sus coordenadas, la cantidad de puntos que da, etc.

Muchas gracias. Ya postearé cuando tenga el juego terminado.
Wofo.