a árvore·vai
Uma implementação Golang do Tetris, seguindo as Diretrizes oficiais de design do Tetris de 2009.
Este projeto consiste em três componentes principais, dependendo de quais são seus objetivos:
cmd/tetrigo/
é para você. Consulte a seção de instalação.pkg/tetris/modes/
são para você. Você pode reutilizar esses modos de jogo com sua própria IU.pkg/tetris/
são para você. Você pode criar seu próprio modo de jogo com um conjunto personalizado de regras e requisitos.Você pode encontrar mais informações sobre essas seções na seção de desenvolvimento. Se você tiver uma sugestão, bug ou solicitação de recurso, abra um problema no GitHub.
O Tetrigo pode ser instalado baixando o binário ou construindo a partir do código-fonte. Veja as instruções abaixo para o seu método preferido.
Você pode baixar o binário correspondente ao seu sistema operacional na página de lançamentos no GitHub.
Depois de baixado, você pode executar o binário na linha de comando:
# Linux or macOS
./tetrigo
# Windows
tetrigo.exe
Opcionalmente, você pode mover o binário para um diretório no seu $PATH
para executá-lo de qualquer lugar (exemplo).
Certifique-se de ter uma versão compatível do Go instalada e configurada corretamente. Você pode encontrar a versão mínima necessária do Go no arquivo go.mod.
Você pode então instalar a versão mais recente globalmente executando:
go install github.com/Broderick-Westrope/tetrigo/cmd/tetrigo@latest
Ou você pode instalar em outro diretório:
env GOBIN=/bin go install github.com/Broderick-Westrope/tetrigo/cmd/tetrigo@latest
Para obter informações gerais sobre como jogar Tetris, consulte este guia para iniciantes.
Os controles padrão do jogo são os seguintes:
A
D
S
W
E
Q
Space
ou Enter
Escape
Ctrl+C
?
Os controles do jogo podem ser alterados no arquivo de configuração.
O menu, tabela de classificação, etc. podem ser navegados usando as teclas de seta (mover), escapar (sair) e entrar (enviar). Esses controles não são configuráveis.
Iniciar o Tetrigo sem subcomando ou sinalizadores iniciará o jogo no menu onde você pode definir manualmente configurações simples, como o nome do jogador e o modo de jogo:
./tetrigo
Você também pode iniciar o jogo diretamente em um modo de jogo (por exemplo, Maratona), pulando o menu:
# Start the game in Marathon mode with a level of 5 and the player name "Brodie"
./tetrigo play marathon --level=5 --name=Brodie
Para ver mais opções para iniciar o jogo você pode executar:
./tetrigo --help
Uma configuração mais complexa pode ser feita usando um arquivo TOML. Se nenhum arquivo de configuração for encontrado, padrões sensatos serão usados.
Por padrão, o Tetrigo procurará o arquivo ./tetrigo/config.toml
no diretório de configuração XDG do dispositivo (ou equivalente). O adrg/xdg define valores XDG_CONFIG_HOME
para vários sistemas operacionais (por exemplo, no macOS é o diretório ~/Library/Application Support
existente, ele será armazenado lá, caso contrário, em ~/Library/Preferences
). Você pode especificar um arquivo diferente usando o sinalizador --config
.
./tetrigo --config=/path/to/config.toml
Um exemplo de arquivo de configuração é fornecido em example.config.toml
.
Os dados do jogo são armazenados em um banco de dados SQLite. Por padrão, o banco de dados é armazenado em ./tetrigo/tetrigo.db
no diretório de dados XDG do dispositivo (ou equivalente). O adrg/xdg define XDG_DATA_HOME
para vários sistemas operacionais (por exemplo, no macOS, se o diretório ~/Library/Application Support
existir, ele será armazenado lá, caso contrário, em /Library/Application Support
). Você pode especificar um caminho de arquivo diferente usando o sinalizador --db
.
./tetrigo --db=/path/to/data.db
Este projeto consiste em três componentes principais:
cmd/tetrigo/
: Uma TUI (Text User Interface) que permite que você reproduza imediatamente. Também serve como demonstração de como usar os pacotes e como criar uma TUI usando Bubble Tea.pkg/tetris/modes/
: A funcionalidade para diferentes modos de jogo Tetris. Isso pode ser usado para criar facilmente um jogo de Tetris com sua própria IU, mas sem a necessidade de conhecer o conjunto de regras.pkg/tetris/
: A lógica central do Tetris, incluindo coisas como Tetrminimos, Matrix e pontuação. Isso pode ser usado para criar modos de jogo com seu próprio conjunto de regras e requisitos.Task é a ferramenta de construção usada neste projeto. A configuração da tarefa reside em Taskfile.yaml. Depois que a Task CLI estiver instalada, você poderá ver todas as tarefas disponíveis executando:
task -l
Você pode executar a TUI usando a tarefa run
:
task run
Você pode construir o projeto usando a tarefa build
:
task build
Isto criará um binário no diretório bin/
que pode ser executado usando as instruções na seção Instalação.
Os testes podem ser executados usando a tarefa test
:
task test
Você também pode usar a tarefa cover
para gerar e abrir um relatório de cobertura:
task cover
As prioridades ordenadas para testes são:
pkg/tetris/
pkg/tetris/modes/
cmd/tetrigo/