Juego de la serpiente en Python (Copiar y pegar)

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.