▎Введение
Тетрис — это классическая аркадная игра, которая была разработана в 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 — это отличный способ познакомиться с основами программирования игр. Вы можете расширить эту базовую версию, добавив новые функции, такие как счетчик очков, уровни сложности и улучшенную графику. Надеемся, что эта статья вдохновила вас на создание собственных игр!