Предмет:
ИнформатикаАвтор:
bulletОтвет:
import pygame
import sys
import random
# Инициализация Pygame
pygame.init()
# Определение размеров экрана
WIDTH, HEIGHT = 800, 600
GRID_SIZE = 20
# Определение цветов
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)
# Создание экрана
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Змейка")
# Инициализация змейки
snake = [(GRID_SIZE, GRID_SIZE)]
snake_direction = (GRID_SIZE, 0)
snake_speed = 15
# Инициализация фрукта
fruit = (random.randint(0, WIDTH - GRID_SIZE) // GRID_SIZE * GRID_SIZE,
random.randint(0, HEIGHT - GRID_SIZE) // GRID_SIZE * GRID_SIZE)
# Очки
score = 0
# Функция рисования змейки
def draw_snake(snake):
for segment in snake:
pygame.draw.rect(screen, GREEN, (segment[0], segment[1], GRID_SIZE, GRID_SIZE))
# Функция рисования фрукта
def draw_fruit(fruit):
pygame.draw.rect(screen, RED, (fruit[0], fruit[1], GRID_SIZE, GRID_SIZE))
# Главный игровой цикл
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and snake_direction != (GRID_SIZE, 0):
snake_direction = (-GRID_SIZE, 0)
if keys[pygame.K_RIGHT] and snake_direction != (-GRID_SIZE, 0):
snake_direction = (GRID_SIZE, 0)
if keys[pygame.K_UP] and snake_direction != (0, GRID_SIZE):
snake_direction = (0, -GRID_SIZE)
if keys[pygame.K_DOWN] and snake_direction != (0, -GRID_SIZE):
snake_direction = (0, GRID_SIZE)
# Перемещение змейки
new_head = (snake[0][0] + snake_direction[0], snake[0][1] + snake_direction[1])
snake.insert(0, new_head)
# Проверка на столкновение с фруктом
if snake[0] == fruit:
score += 1
fruit = (random.randint(0, WIDTH - GRID_SIZE) // GRID_SIZE * GRID_SIZE,
random.randint(0, HEIGHT - GRID_SIZE) // GRID_SIZE * GRID_SIZE)
else:
snake.pop()
# Проверка на столкновение с границами
if snake[0][0] < 0 or snake[0][0] >= WIDTH or snake[0][1] < 0 or snake[0][1] >= HEIGHT:
pygame.quit()
sys.exit()
# Проверка на столкновение с самой собой
if len(snake) > 1 and snake[0] in snake[1:]:
pygame.quit()
sys.exit()
# Очистка экрана
screen.fill(BLACK)
# Рисование змейки и фрукта
draw_snake(snake)
draw_fruit(fruit)
# Отображение счета
font = pygame.font.Font(None, 36)
score_text = font.render(f"Счет: {score}", True, WHITE)
screen.blit(score_text, (10, 10))
# Обновление экрана
pygame.display.update()
# Задержка
pygame.time.delay(1000 // snake_speed)
Автор:
boo-boo4twvДобавить свой ответ
Предмет:
ЛитератураАвтор:
booОтветов:
Смотреть
Предмет:
ЛитератураАвтор:
lilly26Ответов:
Смотреть
Предмет:
ГеометрияАвтор:
bumpkinow4hОтветов:
Смотреть