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