Untitled
unknown
plain_text
a month ago
2.4 kB
11
Indexable
import pygame
import time
import random
pygame.init()
WIDTH = 600
HEIGHT = 400
BLOCK_SIZE = 20
screen = pygame.display.set_mode((WIDTH, HEIGHT))
WHITE = (255, 255, 255)
GREEN = (0, 200, 0)
RED = (200, 0, 0)
BLACK = (0, 0, 0)
clock = pygame.time.Clock()
font = pygame.font.SysFont(None, 35)
def draw_snake(snake_list):
for block in snake_list:
pygame.draw.rect(screen, GREEN, [block[0], block[1], BLOCK_SIZE, BLOCK_SIZE])
def message(msg, color):
text = font.render(msg, True, color)
screen.blit(text, [WIDTH / 6, HEIGHT / 3])
def game_loop():
game_over = False
game_close = False
x = WIDTH // 2
y = HEIGHT // 2
dx = 0
dy = 0
snake = []
snake_length = 1
food_x = round(random.randrange(0, WIDTH - BLOCK_SIZE) / BLOCK_SIZE) * BLOCK_SIZE
food_y = round(random.randrange(0, HEIGHT - BLOCK_SIZE) / BLOCK_SIZE) * BLOCK_SIZE
while not game_over:
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
dx = -BLOCK_SIZE
dy = 0
elif event.key == pygame.K_RIGHT:
dx = BLOCK_SIZE
dy = 0
elif event.key == pygame.K_UP:
dy = -BLOCK_SIZE
dx = 0
elif event.key == pygame.K_DOWN:
dy = BLOCK_SIZE
dx = 0
x += dx
y += dy
if x >= WIDTH or x < 0 or y >= HEIGHT or y < 0:
game_close = True
screen.fill(BLACK)
pygame.draw.rect(screen, RED, [food_x, food_y, BLOCK_SIZE, BLOCK_SIZE])
snake_head = [x, y]
snake.append(snake_head)
if len(snake) > snake_length:
del snake[0]
for segment in snake[:-1]:
if segment == snake_head:
game_close = True
draw_snake(snake)
pygame.display.update()
if x == food_x and y == food_y:
food_x = round(random.randrange(0, WIDTH - BLOCK_SIZE) / BLOCK_SIZE) * BLOCK_SIZE
food_y = round(random.randrange(0, HEIGHT - BLOCK_SIZE) / BLOCK_SIZE) * BLOCK_SIZE
snake_length += 1
clock.tick(10)
game_loop()
Editor is loading...
Leave a Comment