て・木・行く
2009 年の公式テトリス デザイン ガイドラインに従ったテトリスの Golang 実装。
このプロジェクトは、目標に応じて 3 つの主要なコンポーネントで構成されます。
cmd/tetrigo/
の TUI (テキスト ユーザー インターフェイス) が役立ちます。インストールのセクションを参照してください。pkg/tetris/modes/
のパッケージはあなたのためのものです。これらのゲーム モードは独自の UI で再利用できます。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 を起動すると、メニューでゲームが開始され、プレイヤー名やゲーム モードなどの簡単な設定を手動で構成できます。
./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 はデバイスの XDG config (または同等の) ディレクトリ内でファイル./tetrigo/config.toml
を検索します。 adrg/xdg は、さまざまなオペレーティング システムの値XDG_CONFIG_HOME
を定義します (たとえば、macOS では~/Library/Application Support
ディレクトリが存在し、そこに保存されます。それ以外の場合は~/Library/Preferences
に保存されます)。 --config
フラグを使用して別のファイルを指定できます。
./tetrigo --config=/path/to/config.toml
構成ファイルの例はexample.config.toml
に提供されています。
ゲームデータは SQLite データベースに保存されます。デフォルトでは、データベースはデバイスの XDG データ (または同等の) ディレクトリ内の./tetrigo/tetrigo.db
に保存されます。 adrg/xdg は、さまざまなオペレーティング システムのXDG_DATA_HOME
を定義します (たとえば、macOS では、 ~/Library/Application Support
ディレクトリが存在する場合はそこに保存され、それ以外の場合は/Library/Application Support
に保存されます)。 --db
フラグを使用して、別のファイル パスを指定できます。
./tetrigo --db=/path/to/data.db
このプロジェクトは 3 つの主要なコンポーネントで構成されています。
cmd/tetrigo/
: すぐに再生できる TUI (テキスト ユーザー インターフェイス)。また、パッケージの使用方法と、Bubble Tea を使用して TUI を作成する方法のデモンストレーションとしても機能します。pkg/tetris/modes/
: さまざまなテトリス ゲーム モードの機能。これを使用すると、ルールセットを知らなくても、独自の UI でテトリス ゲームを簡単に作成できます。pkg/tetris/
: テトリミニモス、マトリックス、スコアリングなどを含む、テトリスのコア ロジック。これを使用して、独自のルールセットと要件を備えたゲーム モードを作成できます。Task は、このプロジェクトで使用されるビルド ツールです。タスク構成は Taskfile.yaml にあります。タスク CLI がインストールされたら、次のコマンドを実行すると、利用可能なすべてのタスクを表示できます。
task -l
run
タスクを使用して TUI を実行できます。
task run
build
タスクを使用してプロジェクトをビルドできます。
task build
これにより、「インストール」セクションの手順に従って実行できるバイナリがbin/
ディレクトリに作成されます。
テストは、 test
タスクを使用して実行できます。
task test
cover
タスクを使用してカバレッジ レポートを生成して開くこともできます。
task cover
テストの優先順位は次のとおりです。
pkg/tetris/
pkg/tetris/modes/
cmd/tetrigo/