Micattix
Micattixは、MattixボードゲームをプレイするためのエンジンをRustで実装したライブラリです。2人プレイモードと4人プレイモードをサポートし、コンソールUIとggezを使用したグラフィカルUIの両方を提供します。名前は雲母(mica)の完全へき開性(一方向のみに割れる性質)にちなんでおり、ゲームの一方向移動という特性を表しています。
ゲームルール
- 4x4または6x6の盤面を使用
- 2人または4人のプレイヤーが交互にプレイ
- 先攻・3番目のプレイヤーは横軸にのみ移動でき、後攻・4番目のプレイヤーは縦軸にのみ移動できる
- 駒の種類:
- 4x4の場合: 1~7の数字が各2個、8の数字が1個、クロスチップが1個
- 6x6の場合: 1~9の数字が各2個、-1~-10と+10の数字が各1個、クロスチップが1個
- クロスチップを移動させて、移動先にある数字の駒を取得
- すべての駒を取得したら、合計点数の高いプレイヤーが勝利
特徴
- ゲームロジックとUIの明確な分離
- イベント駆動設計
- 複数のラウンドをサポート
- 2人プレイと4人プレイの両方をサポート
- カスタムUIに対応するインターフェース
使用方法
コンソールUIの実行
グラフィカルUIの実行
ライブラリとして使用
use ;
use GameManager;
// 新しいゲームを作成(2プレイヤーモード)
let mut manager = new;
// カスタムリスナーを追加
manager.add_listener;
// ゲーム開始
manager.start_game;
// プレイヤーの移動を処理
manager.make_move;
// ラウンド終了後、次のラウンドを開始
if manager.session.is_round_over
// ゲーム終了
manager.end_game;
プロジェクト構造
src/core.rs- ゲームの基本要素(盤面、駒、プレイヤーなど)src/game.rs- ゲームセッション管理とイベント処理src/ui.rs- UIの実装とインターフェースsrc/bin/console.rs- コンソールUIの実装src/bin/ggez.rs- ggezを使用したグラフィカルUIの実装
カスタムUIの作成
カスタムUIを実装するには、GameEventListenerトレイトを実装します:
use ;
;
ライセンス
MITライセンスの下で公開されています。