der Baum geht
Eine Golang-Implementierung von Tetris gemäß der offiziellen Tetris-Designrichtlinie von 2009.
Dieses Projekt besteht aus drei Hauptkomponenten, abhängig von Ihren Zielen:
cmd/tetrigo/
ist für Sie da. Siehe Abschnitt „Installation“.pkg/tetris/modes/
sind für Sie. Sie können diese Spielmodi mit Ihrer eigenen Benutzeroberfläche wiederverwenden.pkg/tetris/
sind für Sie. Sie können Ihren eigenen Spielmodus mit benutzerdefinierten Regeln und Anforderungen erstellen.Weitere Informationen zu diesen Abschnitten finden Sie im Abschnitt Entwicklung. Wenn Sie einen Vorschlag, einen Fehler oder eine Funktionsanfrage haben, öffnen Sie bitte ein GitHub-Problem.
Tetrigo kann durch Herunterladen der Binärdatei oder durch Erstellen aus dem Quellcode installiert werden. Sehen Sie sich die Anweisungen unten für Ihre bevorzugte Methode an.
Sie können die Ihrem Betriebssystem entsprechende Binärdatei von der Release-Seite auf GitHub herunterladen.
Nach dem Herunterladen können Sie die Binärdatei über die Befehlszeile ausführen:
# Linux or macOS
./tetrigo
# Windows
tetrigo.exe
Optional können Sie die Binärdatei in ein Verzeichnis in Ihrem $PATH
verschieben, um sie von überall aus auszuführen (Beispiel).
Stellen Sie sicher, dass Sie eine unterstützte Version von Go ordnungsgemäß installiert und eingerichtet haben. Die mindestens erforderliche Version von Go finden Sie in der Datei go.mod.
Anschließend können Sie die neueste Version global installieren, indem Sie Folgendes ausführen:
go install github.com/Broderick-Westrope/tetrigo/cmd/tetrigo@latest
Oder Sie können in ein anderes Verzeichnis installieren:
env GOBIN=/bin go install github.com/Broderick-Westrope/tetrigo/cmd/tetrigo@latest
Allgemeine Informationen zum Spielen von Tetris finden Sie in diesem Anfängerleitfaden.
Die Standard-Spielsteuerung ist wie folgt:
A
D
S
W
E
Q
Space
oder Enter
Escape
Ctrl+C
?
Die Spielsteuerung kann in der Konfigurationsdatei geändert werden.
Durch das Menü, die Bestenliste usw. kann mit den Pfeiltasten (Verschieben), Escape (Beenden) und Enter (Senden) navigiert werden. Diese Steuerelemente sind nicht konfigurierbar.
Wenn Sie Tetrigo ohne Unterbefehle oder Flags starten, wird das Spiel im Menü gestartet, in dem Sie einfache Einstellungen wie den Spielernamen und den Spielmodus manuell konfigurieren können:
./tetrigo
Sie können das Spiel auch direkt in einem Spielmodus (z. B. Marathon) starten und dabei das Menü überspringen:
# Start the game in Marathon mode with a level of 5 and the player name "Brodie"
./tetrigo play marathon --level=5 --name=Brodie
Um weitere Optionen zum Starten des Spiels anzuzeigen, können Sie Folgendes ausführen:
./tetrigo --help
Komplexere Konfigurationen können mithilfe einer TOML-Datei durchgeführt werden. Wenn keine Konfigurationsdatei gefunden wird, werden sinnvolle Standardeinstellungen verwendet.
Standardmäßig sucht Tetrigo nach der Datei ./tetrigo/config.toml
im XDG-Konfigurationsverzeichnis des Geräts (oder einem gleichwertigen Verzeichnis). Das adrg/xdg definiert Werte XDG_CONFIG_HOME
für verschiedene Betriebssysteme (z. B. unter macOS ist das Verzeichnis ~/Library/Application Support
vorhanden und wird dort gespeichert, andernfalls in ~/Library/Preferences
). Mit dem Flag --config
können Sie eine andere Datei angeben.
./tetrigo --config=/path/to/config.toml
Eine Beispielkonfigurationsdatei finden Sie in example.config.toml
.
Die Spieldaten werden in einer SQLite-Datenbank gespeichert. Standardmäßig wird die Datenbank in ./tetrigo/tetrigo.db
im XDG-Datenverzeichnis (oder einem gleichwertigen Verzeichnis) des Geräts gespeichert. Das adrg/xdg definiert XDG_DATA_HOME
für verschiedene Betriebssysteme (z. B. unter macOS, wenn das Verzeichnis ~/Library/Application Support
vorhanden ist, wird es dort gespeichert, andernfalls in /Library/Application Support
). Mit dem Flag --db
können Sie einen anderen Dateipfad angeben.
./tetrigo --db=/path/to/data.db
Dieses Projekt besteht aus drei Hauptkomponenten:
cmd/tetrigo/
: Eine TUI (Text User Interface), mit der Sie es sofort abspielen können. Es dient auch als Demonstration der Verwendung der Pakete und der Erstellung einer TUI mit Bubble Tea.pkg/tetris/modes/
: Die Funktionalität für verschiedene Tetris-Spielmodi. Damit können Sie ganz einfach ein Tetris-Spiel mit Ihrer eigenen Benutzeroberfläche erstellen, ohne dass Sie den Regelsatz kennen müssen.pkg/tetris/
: Die Kernlogik von Tetris, einschließlich Dingen wie Tetrminimos, der Matrix und der Wertung. Damit können Sie Spielmodi mit Ihrem eigenen Regelsatz und Ihren Anforderungen erstellen.Task ist das in diesem Projekt verwendete Build-Tool. Die Task-Konfiguration befindet sich in Taskfile.yaml. Sobald die Task-CLI installiert ist, können Sie alle verfügbaren Tasks anzeigen, indem Sie Folgendes ausführen:
task -l
Sie können die TUI mit der run
ausführen:
task run
Sie können das Projekt mit der build
-Aufgabe erstellen:
task build
Dadurch wird eine Binärdatei im Verzeichnis bin/
erstellt, die mithilfe der Anweisungen im Abschnitt „Installation“ ausgeführt werden kann.
Tests können mit der test
ausgeführt werden:
task test
Sie können die cover
auch verwenden, um einen Abdeckungsbericht zu erstellen und zu öffnen:
task cover
Die geordneten Prioritäten zum Testen sind:
pkg/tetris/
pkg/tetris/modes/
cmd/tetrigo/