0% encontró este documento útil (0 votos)
4 vistas5 páginas

Juego Snake en Java: Proyecto Final

Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas5 páginas

Juego Snake en Java: Proyecto Final

Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Programa final – Programación de computadores

Juego clásico “snake”

Julian Oliveros
Juan Mora

NRC: 11213
2023
The Snake:

El objetivo principal del proyecto es utilizar el lenguaje de programación Java para crear

un juego Snake clásico. El juego se basará en las reglas tradicionales del Snake, donde

una serpiente debe moverse por la pantalla, comer alimentos y crecer sin chocar con los

bordes del juego o su propio cuerpo, lo que por supuesto, lo hace interactivo

y entretenido.

Se abarcan los siguientes puntos:

Desarrollo Funcional:

∙ Implementar un mecanismo de control de la serpiente mediante el teclado. ∙

Permitir una jugabilidad continua, donde el desafío radica en aumentar la longitud

de la serpiente sin perder

∙ Generar elementos de comida de manera aleatoria en el tablero de juego. ∙

Controlar las colisiones de la serpiente con los bordes y su propio cuerpo,

terminando el juego en caso de colisión.

Entrega del Proyecto:

Para la entrega final, el proyecto será compilado y empaquetado en un CD que

contendrá los siguientes elementos:

Archivos del Proyecto:

Archivo .java: Se incluirán todos los archivos fuente del proyecto.

Documento Explicativo:
Se proporcionará un documento en formato Word que detalla cada uno de los

programas y archivos Java incluidos en el proyecto. (este word)

Grabación de Explicación:

Se entregará un video donde ambos explicaremos el proceso del desarrollo del juego. En el

video se destacarán los aspectos clave, desafíos enfrentados, decisiones de diseño y

funcionamiento del juego. Este video proporcionará una visión general del proyecto.

Explicación del programa

El código se divide en dos clases: Snake y RenderPanel. La clase Snake se encarga de la

lógica del juego, mientras que la clase RenderPanel se encarga de la parte gráfica.

La clase Snake implementa las interfaces ActionListener y KeyListener, que le permiten

reaccionar a los eventos del temporizador y del teclado, respectivamente.

La clase Snake declara e inicializa varias variables que almacenan el estado del juego,

como la ventana, el panel, el temporizador, la serpiente, el cerezo, la dirección, la

puntuación, el tiempo, etc.

La clase Snake también declara un array de colores y una variable global del color del

cerezo, que se usan para cambiar el color del cerezo y de la serpiente cada vez que la

serpiente come un cerezo.

La clase Snake tiene un constructor que se encarga de crear y configurar la ventana y el

panel del juego, y de iniciar el juego llamando al método startGame.


El método startGame se encarga de establecer los valores iniciales de las variables del

juego, como la posición de la serpiente y del cerezo, la longitud de la cola, la dirección, la

puntuación, el tiempo, etc. También inicia el temporizador del juego.

El método actionPerformed se ejecuta cada vez que el temporizador llama al objeto actual.

Este método se encarga de actualizar el estado del juego, como mover la serpiente,

comprobar si ha comido un cerezo, generar un nuevo cerezo con un color aleatorio,

comprobar si el juego ha terminado o está pausado, etc. También llama al método repaint

del panel para que se redibuje el juego.

El método noTailAt se encarga de comprobar si hay alguna parte de la cola de la serpiente

en una posición determinada, devolviendo true si no hay ninguna y false si hay alguna. Este

método se usa para evitar que la serpiente choque con su propia cola.

El método keyPressed se ejecuta cada vez que el usuario pulsa una tecla. Este método se

encarga de cambiar la dirección de la serpiente según la tecla pulsada, o de iniciar, reiniciar

o pausar el juego si se pulsa la tecla espacio.

Los métodos keyReleased y keyTyped se ejecutan cada vez que el usuario suelta o escribe

una tecla, respectivamente. Estos métodos no hacen nada, pero se deben implementar

porque la clase Snake implementa la interfaz KeyListener.

La clase RenderPanel hereda de la clase JPanel, que es un componente gráfico que se puede

añadir a una ventana. La clase RenderPanel se encarga de dibujar el juego en el panel.

La clase RenderPanel declara una constante que representa el color verde que se usa para el

fondo del panel.


El método paintComponent se ejecuta cada vez que se llama al método repaint del panel.

Este método se encarga de dibujar el juego en el panel, usando el objeto de tipo Graphics

que recibe como parámetro. Este método dibuja el fondo, la serpiente, el cerezo, y el texto

con la información del juego, usando los colores y las coordenadas adecuados. También

dibuja el texto de “Game Over” o “Paused” si el juego está terminado o pausado,

respectivamente.

También podría gustarte