дерево·иди
Реализация Тетриса на Golang, соответствующая официальному руководству по дизайну Tetris 2009 года.
Этот проект состоит из трех основных компонентов, в зависимости от ваших целей:
cmd/tetrigo/
предназначен для вас. См. раздел «Установка».pkg/tetris/modes/
предназначены для вас. Вы можете повторно использовать эти игровые режимы в своем собственном пользовательском интерфейсе.pkg/tetris/
предназначены для вас. Вы можете создать свой собственный игровой режим со своим набором правил и требований.Более подробную информацию об этих разделах вы можете найти в разделе разработки. Если у вас есть предложение, ошибка или запрос на добавление функции, откройте проблему на GitHub.
Tetrigo можно установить, загрузив двоичный файл или собрав его из исходного кода. См. инструкции ниже для выбора предпочтительного метода.
Вы можете загрузить двоичный файл, соответствующий вашей операционной системе, со страницы выпусков на GitHub.
После загрузки вы можете запустить двоичный файл из командной строки:
# Linux or macOS
./tetrigo
# Windows
tetrigo.exe
При желании вы можете переместить двоичный файл в каталог в $PATH
, чтобы запускать его откуда угодно (пример).
Убедитесь, что у вас правильно установлена и настроена поддерживаемая версия Go. Вы можете найти минимально необходимую версию Go в файле go.mod.
Затем вы можете установить последнюю версию по всему миру, выполнив:
go install github.com/Broderick-Westrope/tetrigo/cmd/tetrigo@latest
Или вы можете установить в другой каталог:
env GOBIN=/bin go install github.com/Broderick-Westrope/tetrigo/cmd/tetrigo@latest
Общую информацию о том, как играть в тетрис, можно найти в этом руководстве для начинающих.
Стандартные элементы управления игрой следующие:
A
D
S
W
E
Q
Space
или Enter
Escape
Ctrl+C
?
Элементы управления игрой можно изменить в файле конфигурации.
По меню, таблице лидеров и т. д. можно перемещаться с помощью клавиш со стрелками (перемещение), escape (выход) и Enter (отправка). Эти элементы управления не настраиваются.
Запуск Тетриго без подкоманды или флагов запустит игру в меню, где вы сможете вручную настроить простые параметры, такие как имя игрока и режим игры:
./tetrigo
Вы также можете запустить игру прямо в игровом режиме (например, Марафон), минуя меню:
# Start the game in Marathon mode with a level of 5 and the player name "Brodie"
./tetrigo play marathon --level=5 --name=Brodie
Чтобы увидеть больше вариантов запуска игры, вы можете запустить:
./tetrigo --help
Более сложную настройку можно выполнить с помощью файла TOML. Если файл конфигурации не найден, будут использоваться разумные значения по умолчанию.
По умолчанию Tetrigo будет искать файл ./tetrigo/config.toml
в каталоге конфигурации XDG устройства (или его эквиваленте). adrg/xdg определяет значения XDG_CONFIG_HOME
для различных операционных систем (например, в macOS существует каталог ~/Library/Application Support
он будет храниться там, в противном случае — в ~/Library/Preferences
). Вы можете указать другой файл, используя флаг --config
.
./tetrigo --config=/path/to/config.toml
Пример файла конфигурации представлен в example.config.toml
.
Данные игры хранятся в базе данных SQLite. По умолчанию база данных хранится в ./tetrigo/tetrigo.db
в каталоге данных XDG устройства (или его эквиваленте). adrg/xdg определяет XDG_DATA_HOME
для различных операционных систем (например, в macOS, если каталог ~/Library/Application Support
существует, он будет храниться там, в противном случае - в /Library/Application Support
). Вы можете указать другой путь к файлу, используя флаг --db
.
./tetrigo --db=/path/to/data.db
Этот проект состоит из трех основных компонентов:
cmd/tetrigo/
: TUI (текстовый пользовательский интерфейс), позволяющий играть прямо из коробки. Он также служит демонстрацией того, как использовать пакеты и как создать TUI с помощью Bubble Tea.pkg/tetris/modes/
: Функциональность для различных режимов игры в тетрис. Это можно использовать для легкого создания игры «Тетрис» с собственным пользовательским интерфейсом, но без необходимости знания набора правил.pkg/tetris/
: Основная логика Тетриса, включая такие вещи, как Тетрминимос, Матрица и подсчет очков. Это можно использовать для создания игровых режимов с вашим собственным набором правил и требованиями.Task — это инструмент сборки, используемый в этом проекте. Конфигурация задачи находится в Taskfile.yaml. После установки Task CLI вы можете увидеть все доступные задачи, выполнив:
task -l
Вы можете запустить TUI, используя задачу run
:
task run
Вы можете собрать проект, используя задачу build
:
task build
В каталоге bin/
будет создан двоичный файл, который можно будет запустить, следуя инструкциям в разделе «Установка».
Тесты можно запускать с помощью test
задания:
task test
Вы также можете использовать задачу cover
для создания и открытия отчета о покрытии:
task cover
Упорядоченные приоритеты тестирования:
pkg/tetris/
pkg/tetris/modes/
cmd/tetrigo/