Первая игра Змейка появилась на телефонах еще в 1978 годах.
Этот код можно скопировать и сделать на этому коде игру Змейка. Код написан на Питоне. Везде все подписано так что разберетесь.
import pygame
import random
# Инициализация Pygame
pygame.init()
# Размеры экрана
screen_width = 800
screen_height = 600
# Цвета
black = (0, 0, 0)
white = (255, 255, 255)
red = (255, 0, 0)
# Создание экрана
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption(Змейка)
# Время обновления экрана
clock = pygame.time.Clock()
# Размер сегмента змейки
segment_size = 20
# Скорость змейки
snake_speed = 10
# Шрифт
font_style = pygame.font.SysFont(None, 50)
# Функция отображения счета
def show_score(score):
score_text = font_style.render(Счет: + str(score), True, white)
screen.blit(score_text, [10, 10])
# Функция отображения змейки
def draw_snake(segment_size, snake_segments):
for segment in snake_segments:
pygame.draw.rect(screen, white, [segment[0], segment[1], segment_size, segment_size])
# Функция запуска игры
def game():
game_over = False
game_exit = False
# Изначальное положение змейки
snake_x = screen_width / 2
snake_y = screen_height / 2
# Изначальное движение змейки
snake_x_change = 0
snake_y_change = 0
# Изначальный счет
score = 0
# Изначальное положение фрукта
fruit_x = round(random.randrange(0, screen_width - segment_size) / segment_size) * segment_size
fruit_y = round(random.randrange(0, screen_height - segment_size) / segment_size) * segment_size
# Сегменты змейки
snake_segments = []
snake_length = 1
# Главный цикл игры
while not game_exit:
while game_over:
# Конец игры
screen.fill(black)
game_over_text = font_style.render(Конец игры!, True, red)
score_text = font_style.render(Ваш счет: + str(score), True, white)
screen.blit(game_over_text, [screen_width / 3, screen_height / 3])
screen.blit(score_text, [screen_width / 3, screen_height / 2])
pygame.display.flip()
# Обработка событий
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_exit = True
game_over = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_q:
game_exit = True
game_over = False
if event.key == pygame.K_r:
game()
# Обработка событий
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_exit = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
snake_x_change = -segment_size
snake_y_change = 0
elif event.key == pygame.K_RIGHT:
snake_x_change = segment_size
snake_y_change = 0
elif event.key == pygame.K_UP:
snake_y_change = -segment_size
snake_x_change = 0
elif event.key == pygame.K_DOWN:
snake_y_change = segment_size
snake_x_change = 0
# Проверка столкновения со стеной
if snake_x >= screen_width or snake_x < 0 or snake_y >= screen_height or snake_y < 0:
game_over = True
# Изменение положения змейки
snake_x += snake_x_change
snake_y += snake_y_change
screen.fill(black)
# Отрисовка фрукта
pygame.draw.rect(screen, red, [fruit_x, fruit_y, segment_size, segment_size])
# Обновление сегментов змейки
snake_head = []
snake_head.append(snake_x)
snake_head.append(snake_y)
snake_segments.append(snake_head)
if len(snake_segments) > snake_length:
del snake_segments[0]
# Проверка столкновения с фруктом
for segment in snake_segments[:-1]:
if segment == snake_head:
game_over = True
# Отрисовка змейки и счета
draw_snake(segment_size, snake_segments)
show_score(score)
pygame.display.flip()
# Проверка столкновения с фруктом
if snake_x == fruit_x and snake_y == fruit_y:
# Генерация нового положения фрукта
fruit_x = round(random.randrange(0, screen_width - segment_size) / segment_size) * segment_size
fruit_y = round(random.randrange(0, screen_height - segment_size) / segment_size) * segment_size
# Увеличение длины змейки
snake_length += 1
# Увеличение счета
score += 1
# Обновление экрана
clock.tick(snake_speed)
pygame.quit()
# Запуск игры
game()