parent
924f7fdea9
commit
59d8474b8d
@ -0,0 +1,75 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Created on Wed May 21 20:08:31 2025
|
||||
|
||||
@author: Administrator
|
||||
"""
|
||||
|
||||
import pygame
|
||||
import random
|
||||
|
||||
pygame.init()
|
||||
|
||||
WIDTH, HEIGHT = 800, 600
|
||||
screen = pygame.display.set_mode((WIDTH, HEIGHT))
|
||||
|
||||
WHITE, RED, GREEN = (255, 255, 255), (255, 0, 0), (0, 255, 0)
|
||||
|
||||
SNAKE_SIZE = 20
|
||||
SNAKE = [(5 * SNAKE_SIZE, 5 * SNAKE_SIZE),
|
||||
(4 * SNAKE_SIZE, 5 * SNAKE_SIZE),
|
||||
(3 * SNAKE_SIZE, 5 * SNAKE_SIZE)]
|
||||
|
||||
FOOD = (random.randint(0, (WIDTH // SNAKE_SIZE) - 1) * SNAKE_SIZE,
|
||||
random.randint(0, (HEIGHT // SNAKE_SIZE) - 1) * SNAKE_SIZE)
|
||||
|
||||
DIRECTION = "RIGHT"
|
||||
|
||||
running = True
|
||||
|
||||
clock = pygame.time.Clock()
|
||||
|
||||
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_LEFT and DIRECTION != "RIGHT":
|
||||
DIRECTION = "LEFT"
|
||||
elif event.key == pygame.K_RIGHT and DIRECTION != "LEFT":
|
||||
DIRECTION = "RIGHT"
|
||||
elif event.key == pygame.K_UP and DIRECTION != "DOWN":
|
||||
DIRECTION = "UP"
|
||||
elif event.key == pygame.K_DOWN and DIRECTION != "UP":
|
||||
DIRECTION = "DOWN"
|
||||
|
||||
head = SNAKE[0]
|
||||
if DIRECTION == "RIGHT":
|
||||
new_head = (head[0] + SNAKE_SIZE, head[1])
|
||||
elif DIRECTION == "LEFT":
|
||||
new_head = (head[0] - SNAKE_SIZE, head[1])
|
||||
elif DIRECTION == "UP":
|
||||
new_head = (head[0], head[1] - SNAKE_SIZE)
|
||||
elif DIRECTION == "DOWN":
|
||||
new_head = (head[0], head[1] + SNAKE_SIZE)
|
||||
|
||||
if new_head == FOOD:
|
||||
SNAKE.insert(0, new_head)
|
||||
FOOD = (random.randint(0, (WIDTH // SNAKE_SIZE) - 1) * SNAKE_SIZE,
|
||||
random.randint(0, (HEIGHT // SNAKE_SIZE) - 1) * SNAKE_SIZE)
|
||||
else:
|
||||
SNAKE.insert(0, new_head)
|
||||
SNAKE.pop()
|
||||
|
||||
# Check if snake hit itself or wall
|
||||
if (new_head[0] < 0 or new_head[0] >= WIDTH or
|
||||
new_head[1] < 0 or new_head[1] >= HEIGHT or
|
||||
new_head in SNAKE[1:]):
|
||||
running = False
|
||||
|
||||
screen.fill(WHITE)
|
||||
pygame.draw.rect(screen, RED, (FOOD[0], FOOD[1], SNAKE_SIZE, SNAKE_SIZE))
|
||||
for segment in SNAKE:
|
||||
pygame.draw.rect(screen, GREEN, (segment[0], segment[1], SNAKE_SIZE, SNAKE_SIZE))
|
||||
pygame.display.flip()
|
||||
clock.tick(10)
|
Loading…
Reference in new issue