import pygame import random # Initialize Pygame pygame.init() # Set up the game window width, height = 800, 600 window = pygame.display.set_mode((width, height)) pygame.display.set_caption("Snake Game") # Define colors black = (0, 0, 0) white = (255, 255, 255) red = (255, 0, 0) green = (0, 255, 0) # Set up the game clock clock = pygame.time.Clock() # Define the Snake class class Snake: def __init__(self): self.size = 1 self.elements = [[100, 100]] self.direction = "right" def draw(self): for element in self.elements: pygame.draw.rect(window, green, [element[0], element[1], 10, 10]) def move(self): head = self.elements[0] if self.direction == "right": new_head = [head[0] + 10, head[1]] elif self.direction == "left": new_head = [head[0] - 10, head[1]] elif self.direction == "up": new_head = [head[0], head[1] - 10] elif self.direction == "down": new_head = [head[0], head[1] + 10] self.elements.insert(0, new_head) if len(self.elements) > self.size: self.elements.pop() def increase_size(self): self.size += 1 def reset(self): self.size = 1 self.elements = [[100, 100]] self.direction = "right" # Define the Food class class Food: def __init__(self): self.position = [random.randrange(1, width // 10) * 10, random.randrange(1, height // 10) * 10] def draw(self): pygame.draw.rect(window, red, [self.position[0], self.position[1], 10, 10]) # Set up the game objects snake = Snake() food = Food() # Game loop running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False elif event.type == pygame.KEYDOWN: if event.key == pygame.K_RIGHT and snake.direction != "left": snake.direction = "right" elif event.key == pygame.K_LEFT and snake.direction != "right": snake.direction = "left" elif event.key == pygame.K_UP and snake.direction != "down": snake.direction = "up" elif event.key == pygame.K_DOWN and snake.direction != "up": snake.direction = "down" snake.move() if snake.elements[0] == food.position: snake.increase_size() food = Food() if snake.elements[0][0] < 0 or snake.elements[0][0] >= width or snake.elements[0][1] < 0 or snake.elements[0][1] >= height: snake.reset() food = Food() for element in snake.elements[1:]: if snake.elements[0] == element: snake.reset() food = Food() window.fill(black) snake.draw() food.draw() pygame.display.update() clock.tick(15) # Quit the game pygame.quit()