Разработка игры «Буузоед» с использованием языка программирования Python

XXVII Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Разработка игры «Буузоед» с использованием языка программирования Python

Плюхин К.Р. 1
1МАОУ "Агинская СОШ №2"
Дондоков Т.Ц. 1Чимитова С.Ц. 2
1МАОУ "Агинская окружная гимназия-интернат"
2МАОУ "Многопрофильный лицей"
Автор работы награжден дипломом победителя I степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

Разработка компьютерных игр на сегодняшний день является одной из самых динамично развивающихся областей в сфере информационных технологий. С каждым годом растет интерес к играм, как со стороны пользователей, так и со стороны разработчиков. В условиях современного мира, где развлечения и досуг играют важную роль в жизни человека, создание качественных и увлекательных игр становится особенно актуальным. В этом контексте игра «Бузоед» представляет собой не только интересное развлечение, но и инструмент для развития логического мышления, стратегического планирования и быстрого реагирования у игроков.

Аннотация

Работа представляет собой разработку игры "Буузоед" с использованием языка программирования Python. Игра будет представлять собой аркадный тип, где игрок управляет персонажем, который должен съедать буузу и избегать различных препятствий. Основная цель игры — набрать максимальное количество очков, съедая буузы и избегая поражений.

Актуальность данной работы обусловлена недостатком качественных и занимательных игр, разработанных на языке программирования Python, на бурятскую тематику.

Целью данной работы является изучение основ программирования на языке Python и создание собственной компьютерной игры «Бузоед».

Задачи исследования:

  • Изучить основы программирования на языке Python;

  • Разработать концепцию игры «Бузоед»;

  • Создать игру «Бузоед» с использованием языка программирования Python;

  • Провести тестирование игры и собрать обратную связь от пользователей.

Методы исследования:

  • Изучение литературы по программированию на языке Python;

  • Анализ существующих игр и их механик;

  • Программирование игры «Бузоед» на языке Python;

  • Тестирование игры на различных устройствах и сбор обратной связи от пользователей.

Результаты исследования:

По итогам исследования мы планируем создать собственную компьютерную игру «Бузоед», которая будет доступна для игры на различных устройствах. Мы также надеемся получить обратную связь от пользователей, чтобы улучшить игру и сделать ее более интересной и увлекательной.

Глава I. Что такое Python.

    1. Что такое Python.

Python — это высокоуровневый язык программирования, отличающийся эффективностью, простотой и универсальностью использования. Он широко применяется в разработке веб-приложений и прикладного программного обеспечения, а также в машинном обучении и обработке больших данных. За счет простого и интуитивно понятного синтаксиса является одним из распространенных языков.

    1. Описание игры.

Название игры: Буузоед
Тип игры: Аркадная, с элементами избегания и сбора объектов.
Цель игры: Игрок управляет персонажем, который должен собирать буузы и избегать препятствий. За каждый собранный объект игрок получает очки, за каждое поражение — теряет жизни.
Управление: Клавиши стрелок для движения персонажа по экрану.

1.3 Буузы

Буузы — это традиционное блюдо бурятского и монгольского народов, означающее «мясо, завёрнутое в тесто». На русском языке его называют позы.

Считается, что буузы — один из вариантов китайского блюда баоцзы, но, в отличие от него, начинка в буузах — исключительно мясная. Блюдо также родственно грузинским хинкали и тюркским мантам.

Буузы готовят на пару в специальных кастрюлях — «позницах». В качестве основных компонентов начинка содержит рублёное мясо и репчатый лук.

Буузы занимают важное место в национальной культуре бурятов: их подают на каждом празднике и даже устраивают конкурсы на скоростное поедание.

Глава II. Практическая часть.

2.1 Этапы разработки.

  1. Подготовка среды разработки
    Для разработки игры мы будем использовать Python и библиотеку Pygame, которая предоставляет удобные средства для работы с графикой, звуком и обработкой пользовательского ввода.

  2. Создание основных элементов игры
    В этой игре будут несколько ключевых элементов:

    • Игровое поле: Пространство, в котором происходит действие.

    • Персонаж игрока: это объект, который будет управляться пользователем и двигаться по экрану.

    • Буузы: Объекты, которые нужно собирать для получения очков.

    • Препятствия или враги: Объекты, которых следует избегать, чтобы не потерять жизни.

    • Очки и жизнь: Система отслеживания очков и оставшихся жизней.

  3. Реализация игрового процесса
    Примерный процесс игры:

    • Игрок управляет персонажем с помощью клавиш стрелок.

    • Буузы появляются случайным образом на экране.

    • Игрок должен поймать как можно больше буузов, двигаясь по экрану.

    • При столкновении с врагами или препятствиями игрок теряет жизнь.

    • Игра заканчивается, когда у игрока заканчиваются жизни или он решит выйти.

Структурапрограммы

import pygame

import random

# Инициализация Pygame

pygame.init()

# Размеры окна

SCREEN_WIDTH = 800

SCREEN_HEIGHT = 600

# Цвета

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

GREEN = (0, 255, 0)

RED = (255, 0, 0)

# Скоростьигры

FPS = 60

# Классыигры

class Player(pygame.sprite.Sprite):

def __init__(self):

super().__init__()

self.image = pygame.Surface((50, 50))

self.image.fill(GREEN)

self.rect = self.image.get_rect()

self.rect.center = (SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2)

self.speed = 5

def update(self, keys):

if keys[pygame.K_LEFT]:

self.rect.x -= self.speed

if keys[pygame.K_RIGHT]:

self.rect.x += self.speed

if keys[pygame.K_UP]:

self.rect.y -= self.speed

if keys[pygame.K_DOWN]:

self.rect.y += self.speed

# Ограничиваем движение в пределах экрана

if self.rect.left < 0:

self.rect.left = 0

if self.rect.right > SCREEN_WIDTH:

self.rect.right = SCREEN_WIDTH

if self.rect.top < 0:

self.rect.top = 0

if self.rect.bottom > SCREEN_HEIGHT:

self.rect.bottom = SCREEN_HEIGHT

class Buuz(pygame.sprite.Sprite):

def __init__(self):

super().__init__()

self.image = pygame.Surface((30, 30))

self.image.fill(RED)

self.rect = self.image.get_rect()

self.rect.x = random.randint(0, SCREEN_WIDTH - 30)

self.rect.y = random.randint(0, SCREEN_HEIGHT - 30)

def update(self):

pass

class Enemy(pygame.sprite.Sprite):

def __init__(self):

super().__init__()

self.image = pygame.Surface((30, 30))

self.image.fill(WHITE)

self.rect = self.image.get_rect()

self.rect.x = random.randint(0, SCREEN_WIDTH - 30)

self.rect.y = random.randint(0, SCREEN_HEIGHT - 30)

self.speed = random.randint(3, 6)

def update(self):

self.rect.y += self.speed

if self.rect.top > SCREEN_HEIGHT:

self.rect.bottom = 0

self.rect.x = random.randint(0, SCREEN_WIDTH - 30)

# Инициализацияэкрана

screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

pygame.display.set_caption("Буузоед")

# Группыспрайтов

all_sprites = pygame.sprite.Group()

buuz_group = pygame.sprite.Group()

enemy_group = pygame.sprite.Group()

# Создание персонажа игрока

player = Player()

all_sprites.add(player)

# Созданиебууз

for _ in range(5):

buuz = Buuz()

all_sprites.add(buuz)

buuz_group.add(buuz)

# Созданиеврагов

for _ in range(3):

enemy = Enemy()

all_sprites.add(enemy)

enemy_group.add(enemy)

# Счётижизни

score = 0

lives = 3

font = pygame.font.SysFont('Arial', 30)

# Главныйигровойцикл

running = True

clock = pygame.time.Clock()

while running:

# Обработкасобытий

for event in pygame.event.get():

if event.type == pygame.QUIT:

running = False

# Получениенажатыхклавиш

keys = pygame.key.get_pressed()

# Обновление всех спрайтов

all_sprites.update(keys)

# Проверка на столкновения

buuz_collisions = pygame.sprite.spritecollide(player, buuz_group, True)

for buuz in buuz_collisions:

score += 1 # Увеличениесчёта

enemy_collisions = pygame.sprite.spritecollide(player, enemy_group, False)

if enemy_collisions:

lives -= 1 # Потеряжизни

if lives <= 0:

running = False # Конец игры, если жизни закончились

# Отображение

screen.fill(BLACK)

all_sprites.draw(screen)

# Отображениесчётаижизней

score_text = font.render(f"Score: {score}", True, WHITE)

lives_text = font.render(f"Lives: {lives}", True, WHITE)

screen.blit(score_text, (10, 10))

screen.blit(lives_text, (SCREEN_WIDTH - 120, 10))

# Обновлениеэкрана

pygame.display.flip()

# Ограничение кадров

clock.tick(FPS)

# Завершение игры

pygame.quit()

Описание кода

  1. Инициализация Pygame: Мы начинаем с инициализации библиотеки Pygame, которая предоставляет нам все необходимые инструменты для работы с графикой и звуками.

  2. Классы объектов:

    • Player: Класс игрока, который управляется с помощью клавиш стрелок.

    • Buuz: Класс объектов (буузов), которые игрок должен собирать.

    • Enemy: Класс врагов, которые двигаются по экрану и могут столкнуться с игроком.

  3. Основной цикл игры:

    • Игровой цикл работает до тех пор, пока игрок не закроет окно игры или не потеряет все жизни.

    • Внутри цикла происходит обработка событий (например, нажатия клавиш), обновление состояния игры (движение объектов) и отрисовка графики.

  4. Система очков и жизней:

    • За каждый съеденный бууз увеличивается счёт.

    • При столкновении с врагами игрок теряет жизнь. Когда жизни заканчиваются, игра заканчивается.

Заключение

Разработка игр на языке программирования Python может быть увлекательным и интересным занятием не только для профессиональных программистов, но и для школьников. Эта работа представляет собой базовую реализацию игры с использованием Python. В будущем можно улучшить игру, добавив новые уровни, более сложных врагов, улучшенную графику и звуковые эффекты.

Список используемых источников:

  1. https://www.python.org/ - Официальный сайт Python;

  2. https://multiurok.ru/blog/buuzy-natsionalnoe-buriatskoe-bliudo.html - буузы

Приложение 1

Приложение 2

Просмотров работы: 1