🐍Videojuego Snake
Introducción
¡En este ejercicio práctico vamos a implementar nuestro segundo videojuego en Python!
Concretamente el juego que vamos a programar es el Snake, uno de los juegos más populares de todos los tiempos al que seguro que muchos de nosotros hemos jugado alguna vez. Este juego consiste en mover una serpiente dentro de un rectángulo comiendo puntos que hacen que el cuerpo de la serpiente aumente de tamaño. Si nos chocamos con alguno de los bordes o el propio cuerpo de la serpiente perderemos la partida. A continuación se muestra una imagen del juego.

1. Explorando el paquete por defecto de Python Turtle
TurtleEsta vez vamos a intentar que nuestro juego tenga una interfaz gráfica una poco más visual que la que implementamos en el juego del cuatro en raya. Para implementar estos gráficos en Python, vamos a utilizar un paquete muy sencillo denominado Turtle.
Turtle es un paquete de Python preinstalado que permite a los usuarios crear imágenes y formas proporcionándoles un lienzo virtual. El lápiz en pantalla que se utiliza para dibujar se llama turtle y esto es lo que da nombre a la biblioteca.
Más información: https://docs.python.org/3/library/turtle.html
Explora el paquete de Python Turtle y familiarízate con sus estructuras más populares.
Pista: Presta especial atención a las siguientes clases Screen() y a los siguientes métodos que exponen los objetos de esta clase: title(), bgcolor(), setup() y tracer().

Pista: Presta especial atención a las siguientes clases Turtle() y a los siguientes métodos que exponen los objetos de esta clase: goto(), speed(), shape(), color() penup(), write()

Pista: Regresa de nuevo al objeto generados partir de la clase Screen() e intenta mover el objeto turtle utilizando los métodos listen() y onkeypress()
2. Clase Snake
Vamos a comenzar creando la pantalla en la que vamos a jugar al juego y la serpiente. Cuando comienza el juego, la serpiente es únicamente un cuadrado en la pantalla.

Implementa una clase que inicialice la pantalla en la que vamos a jugar al juego, la serpiente y el texto que vamos a mostrar por pantalla.
3. Implementando los movimientos de la serpiente
Ya tenemos nuestra pantalla implementada y la serpiente representada como un cuadrado negro. En este punto debemos comenzar a implementar los movimientos de la serpiente por la pantalla.
Añade a la clase Snake los métodos que consideres necesarios para habilitar el movimiento de serpiente por la pantalla. Ten en cuenta que estos métodos tendrán que invocarse más adelante mediante la pulsación de una tecla.In [9]:
4. Implementando los movimientos de la serpiente utilizando las teclas
Si has llegado hasta este apartado, ya tienes una parte importante de tu videojuego implementada. Una vez que has conseguido mover la serpiente por la pantalla, ahora debes permitir que estos movimientos se realicen mediante la pulsación de una tecla.
Implementan el código dentro de la clase Snake y fuera de ella que consideres necesarios para mover la serpiente por la pantalla pulsando una tecla.
5. Implementando las colisiones con los bordes
Ya tenemos implementado uno de los comportamientos más importantes de nuestro videojuego como es el movimiento de la serpiente. Sin embargo, podemos observar como la serpiente no respeta los bordes y puede traspasarlos. Implementa las colisiones con los bordes de la pantalla para que se mantenga siempre en el recuadro.
Implementa los métodos que consideres necesarios para limitar el movimiento de la serpiente a la pantalla que se está mostrando. Si la serpiente choca con un borde, debe volver al centro de la pantalla.
6. Implementando la comida de la serpiente
Lo siguiente importante que debemos implementar en nuestro juego es la comida de la serpiente. Esto es lo que nos permite aumentar los puntos y que la serpiente aumente de tamaño. La comida debe aparecer aleatoriamente por la pantalla.
Implementa los métodos que consideres necesarios para generar la comida de manera aleatoria en la pantalla. La comida debe ser un circulo del mismo tamaño que la serpiente.
7. Implementando el aumento del tamaño de la serpiente
La siguiente funcionalidad que debemos implementar es el aumento de puntuación y tamaño de la serpiente como cuando come la comida que hemos implementado anteriormente.
Implementa los métodos que consideres necesarios para aumentar la puntuación y el tamaño de la serpiente cuando come la comida implementada en el apartado anterior.
8. Implementando las colisiones con el cuerpo de la serpiente
¡Enhorabuena! Ya casi has completado la implementación de tu videojuego. Lo único que te queda por añadir son las colisiones con el propio cuerpo de la serpiente.
Implementa los métodos que consideres necesarios para introducir colisiones con el propio cuerpo de la serpiente.
Código completo del programa:
Y ya tendríamos implementado nuestro videojuego Snake. Aquí os dejo un enlace a mi repositorio de GitHub donde podéis verlo en detalle y ejecutarlo:
Última actualización