Buenas queridos programadores y programadoras!
Aquí tenéis una versión simple del famoso juego de la serpiente, para que aprendáis como es el funcionamiento básico y incluso puedes intentar mejorarlo, añadiendo puntuación, sonidos y gráficos.
Para empezar tenemos que instalar Pygame:
pip install pygame
Después copia y pega el siguiente código en tu editor favorito y ejecutalo:
import pygame
import sys
import random
pygame.init()
# Tamaño de la ventana del juego
WINDOW_WIDTH, WINDOW_HEIGHT = 800, 600
# Colores
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLACK = (0, 0, 0)
# Tamaño del bloque de serpiente
BLOCK_SIZE = 20
# Velocidad de movimiento de la serpiente
SNAKE_SPEED = 15
# Crear la ventana del juego
window = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT))
pygame.display.set_caption('Snake Game')
# Función para dibujar la serpiente
def draw_snake(snake):
for block in snake:
pygame.draw.rect(window, GREEN, pygame.Rect(block[0], block[1], BLOCK_SIZE, BLOCK_SIZE))
# Función principal del juego
def main():
snake = [[100, 100]] # Lista de bloques que representan la serpiente
direction = 'RIGHT' # Dirección inicial de la serpiente
clock = pygame.time.Clock()
# Comida inicial en una posición aleatoria
food_x, food_y = random.randrange(0, WINDOW_WIDTH - BLOCK_SIZE, BLOCK_SIZE), random.randrange(0, WINDOW_HEIGHT - BLOCK_SIZE, BLOCK_SIZE)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP and direction != 'DOWN':
direction = 'UP'
elif event.key == pygame.K_DOWN and direction != 'UP':
direction = 'DOWN'
elif event.key == pygame.K_LEFT and direction != 'RIGHT':
direction = 'LEFT'
elif event.key == pygame.K_RIGHT and direction != 'LEFT':
direction = 'RIGHT'
# Mover la serpiente en la dirección actual
if direction == 'UP':
head = [snake[0][0], snake[0][1] - BLOCK_SIZE]
elif direction == 'DOWN':
head = [snake[0][0], snake[0][1] + BLOCK_SIZE]
elif direction == 'LEFT':
head = [snake[0][0] - BLOCK_SIZE, snake[0][1]]
elif direction == 'RIGHT':
head = [snake[0][0] + BLOCK_SIZE, snake[0][1]]
# Añadir la nueva posición de la cabeza de la serpiente
snake.insert(0, head)
# Comprobar colisiones
if snake[0][0] == food_x and snake[0][1] == food_y:
# La serpiente ha comido la comida, así que la comida se coloca en una nueva posición aleatoria
food_x, food_y = random.randrange(0, WINDOW_WIDTH - BLOCK_SIZE, BLOCK_SIZE), random.randrange(0, WINDOW_HEIGHT - BLOCK_SIZE, BLOCK_SIZE)
else:
# Si no se ha comido la comida, eliminar el último bloque de la serpiente
snake.pop()
# Dibujar todo en la ventana
window.fill(BLACK)
pygame.draw.rect(window, RED, pygame.Rect(food_x, food_y, BLOCK_SIZE, BLOCK_SIZE))
draw_snake(snake)
# Actualizar la ventana
pygame.display.update()
clock.tick(SNAKE_SPEED)
if __name__ == "__main__":
main()
Al ejecutarlo se nos abrirá una ventana donde comenzará el juego:
Con las flechas de nuestro teclado podremos mover a la serpiente, el objetivo es atrapar los cuadrados rojos y la serpiente se hará mas grande por cada nuevo cuadrado que nos comamos. Con este simple código podrás experimentar ,mejorar el juego y aprender con el proceso.

