Untitled

 avatar
unknown
plain_text
2 years ago
2.8 kB
6
Indexable
import pygame
import random

# Initialize pygame
pygame.init()

# Set up the game window
window_width = 800
window_height = 600
window = pygame.display.set_mode((window_width, window_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)
blue = (0, 0, 255)

# Set up the game clock
clock = pygame.time.Clock()

# Set up the font
font = pygame.font.SysFont(None, 30)

# Define the snake class
class Snake:
    def __init__(self, x, y):
        self.x = x
        self.y = y
        self.dx = 10
        self.dy = 0
        self.body = [(x, y)]
    
    def move(self):
        self.x += self.dx
        self.y += self.dy
        self.body.insert(0, (self.x, self.y))
        self.body.pop()
    
    def grow(self):
        self.body.insert(0, (self.x, self.y))

    def draw(self):
        for x, y in self.body:
            pygame.draw.rect(window, green, (x, y, 10, 10))

# Define the coin class
class Coin:
    def __init__(self):
        self.x = random.randint(0, window_width - 10)
        self.y = random.randint(0, window_height - 10)
    
    def draw(self):
        pygame.draw.rect(window, blue, (self.x, self.y, 10, 10))

# Initialize the snake and the coin
snake = Snake(window_width / 2, window_height / 2)
coin = Coin()

# Set up the game loop
game_over = False
score = 0
while not game_over:
    # Handle events
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            game_over = True
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                snake.dx = -10
                snake.dy = 0
            elif event.key == pygame.K_RIGHT:
                snake.dx = 10
                snake.dy = 0
            elif event.key == pygame.K_UP:
                snake.dx = 0
                snake.dy = -10
            elif event.key == pygame.K_DOWN:
                snake.dx = 0
                snake.dy = 10
    
    # Move the snake
    snake.move()
    
    # Check for collision with the coin
    if snake.x == coin.x and snake.y == coin.y:
        snake.grow()
        coin = Coin()
        score += 1
    
    # Check for collision with the walls
    if snake.x < 0 or snake.x > window_width - 10 or snake.y < 0 or snake.y > window_height - 10:
        game_over = True
    
    # Check for collision with the body
    for x, y in snake.body[1:]:
        if snake.x == x and snake.y == y:
            game_over = True
    
    # Clear the screen
    window.fill(black)
    
    # Draw the snake and the coin
    snake.draw()
    coin.draw()
    
    # Draw the score
    score_text = font.render("Score: " + str(score), True, white)
    window.blit(score_text, (10, 10))
    
    # Update the display
    pygame.display.update
Editor is loading...