Найти в Дзене
Михаил Добрый

Создание игры Тетрис на Python с использованием Pygame

Введение

Тетрис — это классическая аркадная игра, которая была разработана в 1984 году советским программистом Алексеем Пажитновым. Игра завоевала популярность благодаря своей простой, но захватывающей механике. В этой статье мы рассмотрим, как создать простую версию Тетриса на Python с использованием библиотеки Pygame.

Установка Pygame

Перед тем как начать, убедитесь, что у вас установлен Python и библиотека Pygame. Вы можете установить Pygame с помощью следующей команды:

pip install pygame

Основные компоненты игры

1. Настройки игры

В начале кода мы определяем основные настройки игры, такие как размеры окна, размер блока и количество строк и столбцов. Это позволяет создать игровое поле для Тетриса.

WIDTH, HEIGHT = 300, 600

BLOCK_SIZE = 30

ROWS, COLS = HEIGHT // BLOCK_SIZE, WIDTH // BLOCK_SIZE

2. Цвета и фигуры

Мы определяем цвета для блоков и создаем различные фигуры Тетриса. Каждая фигура представлена в виде двумерного массива, где единицы обозначают блоки фигуры.

COLORS = [

  (0, 0, 0), # Черный

  (255, 0, 0), # Красный

  (0, 255, 0), # Зеленый

  ...

]

SHAPES = [

  [[1, 1, 1],

   [0, 1, 0]], # Фигура "Т"

  ...

]

3. Класс Tetris

Основная логика игры реализована в классе Tetris. Этот класс управляет игровым полем, текущей фигурой и проверяет допустимость движений.

class Tetris:

  def __init__(self):

    self.board = [[0] * COLS for _ in range(ROWS)]

    self.current_piece = self.new_piece()

    ...

4. Отрисовка игрового поля

Функция draw_board отвечает за отрисовку игрового поля и фигур на экране. Мы используем метод pygame.draw.rect для создания квадратов на экране.

def draw_board(screen, board):

  for i in range(ROWS):

    for j in range(COLS):

      color = board[i][j]

      pygame.draw.rect(screen, color, (j * BLOCK_SIZE, i * BLOCK_SIZE, BLOCK_SIZE, BLOCK_SIZE), 0)

      pygame.draw.rect(screen, (200, 200, 200), (j * BLOCK_SIZE, i * BLOCK_SIZE, BLOCK_SIZE, BLOCK_SIZE), 1)

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

В главном цикле игры мы обрабатываем события клавиатуры и обновляем состояние игры. Если фигура достигает нижней части поля или сталкивается с другими фигурами, она фиксируется на месте.

while True:

  screen.fill((0, 0, 0))

  draw_board(screen, game.board)

  for event in pygame.event.get():

    if event.type == pygame.QUIT:

      pygame.quit()

      return

       

    if event.type == pygame.KEYDOWN:

      ...

   

  game.current_position[0] += 1

  if not game.valid_move():

    ...

Запуск игры

После написания кода сохраните его в файл с расширением .py, например tetris.py, и запустите с помощью команды:

python tetris.py

Управление игрой

- Стрелка влево: перемещение фигуры влево.

- Стрелка вправо: перемещение фигуры вправо.

- Стрелка вниз: ускорение падения фигуры.

- Стрелка вверх: поворот фигуры.

Заключение

Создание игры Тетрис на Python с использованием Pygame — это отличный способ познакомиться с основами программирования игр. Вы можете расширить эту базовую версию, добавив новые функции, такие как счетчик очков, уровни сложности и улучшенную графику. Надеемся, что эта статья вдохновила вас на создание собственных игр!