l'arbre, va
Une implémentation Golang de Tetris, suivant la directive officielle de conception Tetris de 2009.
Ce projet se compose de trois volets principaux, selon vos objectifs :
cmd/tetrigo/
est fait pour vous. Voir la section installation.pkg/tetris/modes/
sont pour vous. Vous pouvez réutiliser ces modes de jeu avec votre propre interface utilisateur.pkg/tetris/
sont pour vous. Vous pouvez créer votre propre mode de jeu avec un ensemble personnalisé de règles et d'exigences.Vous pouvez trouver plus d’informations sur ces sections dans la section développement. Si vous avez une suggestion, un bug ou une demande de fonctionnalité, veuillez ouvrir un ticket GitHub.
Tetrigo peut être installé en téléchargeant le binaire ou en construisant à partir des sources. Consultez les instructions ci-dessous pour connaître votre méthode préférée.
Vous pouvez télécharger le binaire correspondant à votre système d'exploitation depuis la page des versions sur GitHub.
Une fois téléchargé, vous pouvez exécuter le binaire à partir de la ligne de commande :
# Linux or macOS
./tetrigo
# Windows
tetrigo.exe
En option, vous pouvez déplacer le binaire vers un répertoire de votre $PATH
pour l'exécuter depuis n'importe où (exemple).
Assurez-vous que vous disposez d’une version prise en charge de Go correctement installée et configurée. Vous pouvez trouver la version minimale requise de Go dans le fichier go.mod.
Vous pouvez ensuite installer la dernière version globalement en exécutant :
go install github.com/Broderick-Westrope/tetrigo/cmd/tetrigo@latest
Ou vous pouvez installer dans un autre répertoire :
env GOBIN=/bin go install github.com/Broderick-Westrope/tetrigo/cmd/tetrigo@latest
Pour des informations générales sur la façon de jouer à Tetris, consultez ce guide du débutant.
Les commandes de jeu par défaut sont les suivantes :
A
D
S
W
E
Q
Space
ou Enter
Escape
Ctrl+C
?
Les commandes du jeu peuvent être modifiées dans le fichier de configuration.
Le menu, le classement, etc. peuvent être parcourus à l'aide des touches fléchées (déplacement), d'échappement (sortie) et d'entrée (soumettre). Ces contrôles ne sont pas configurables.
Démarrer Tetrigo sans sous-commande ni drapeau démarrera le jeu dans le menu où vous pourrez configurer manuellement des paramètres simples comme le nom du joueur et le mode de jeu :
./tetrigo
Vous avez également la possibilité de démarrer le jeu directement dans un mode de jeu (ex. Marathon), en sautant le menu :
# Start the game in Marathon mode with a level of 5 and the player name "Brodie"
./tetrigo play marathon --level=5 --name=Brodie
Pour voir plus d'options pour démarrer le jeu, vous pouvez exécuter :
./tetrigo --help
Une configuration plus complexe peut être effectuée à l'aide d'un fichier TOML. Si aucun fichier de configuration n'est trouvé, des valeurs par défaut raisonnables seront utilisées.
Par défaut, Tetrigo recherchera le fichier ./tetrigo/config.toml
dans le répertoire de configuration XDG des appareils (ou équivalent). Le adrg/xdg définit les valeurs XDG_CONFIG_HOME
pour différents systèmes d'exploitation (par exemple, sur macOS, le répertoire ~/Library/Application Support
existe, il y sera stocké, sinon dans ~/Library/Preferences
). Vous pouvez spécifier un fichier différent en utilisant l'indicateur --config
.
./tetrigo --config=/path/to/config.toml
Un exemple de fichier de configuration est fourni dans example.config.toml
.
Les données du jeu sont stockées dans une base de données SQLite. Par défaut, la base de données est stockée dans ./tetrigo/tetrigo.db
dans le répertoire de données XDG (ou équivalent) des appareils. Le adrg/xdg définit XDG_DATA_HOME
pour différents systèmes d'exploitation (par exemple sur macOS si le répertoire ~/Library/Application Support
existe, il y sera stocké, sinon dans /Library/Application Support
). Vous pouvez spécifier un chemin de fichier différent à l'aide de l'indicateur --db
.
./tetrigo --db=/path/to/data.db
Ce projet se compose de trois volets principaux :
cmd/tetrigo/
: Une TUI (Text User Interface) vous permettant d'y jouer directement. Il sert également de démonstration sur la façon d'utiliser les packages et de créer une TUI à l'aide de Bubble Tea.pkg/tetris/modes/
: La fonctionnalité pour les différents modes de jeu Tetris. Cela peut être utilisé pour créer facilement un jeu Tetris avec votre propre interface utilisateur mais sans avoir besoin de connaître les règles.pkg/tetris/
: La logique de base de Tetris, y compris des éléments comme Tetrminimos, la Matrice et la notation. Cela peut être utilisé pour créer des modes de jeu avec vos propres règles et exigences.Task est l'outil de construction utilisé dans ce projet. La configuration de la tâche réside dans Taskfile.yaml. Une fois la Task CLI installée, vous pouvez voir toutes les tâches disponibles en exécutant :
task -l
Vous pouvez exécuter la TUI à l'aide de la tâche run
:
task run
Vous pouvez générer le projet à l'aide de la tâche build
:
task build
Cela créera un binaire dans le répertoire bin/
qui pourra être exécuté en utilisant les instructions de la section Installation.
Les tests peuvent être exécutés à l'aide de la tâche test
:
task test
Vous pouvez également utiliser la tâche cover
pour générer et ouvrir un rapport de couverture :
task cover
Les priorités ordonnées pour les tests sont :
pkg/tetris/
pkg/tetris/modes/
cmd/tetrigo/