Найти тему
Tsunami Entertainment

Тренировался и написал Код игры Змейка. Кому нужно берите.

Первая игра Змейка появилась на телефонах еще в 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()