| Crates.io | micattix |
| lib.rs | micattix |
| version | 0.2.0 |
| created_at | 2025-03-26 23:06:33.317012+00 |
| updated_at | 2025-03-27 01:41:43.376274+00 |
| description | A Rust library for the Mattix board game, named after mica's perfect cleavage property |
| homepage | |
| repository | https://github.com/MrBearing/micattix |
| max_upload_size | |
| id | 1607286 |
| size | 158,913 |
Micattixは、MattixボードゲームをプレイするためのエンジンをRustで実装したライブラリです。2人プレイモードと4人プレイモードをサポートし、コンソールUIとggezを使用したグラフィカルUIの両方を提供します。名前は雲母(mica)の完全へき開性(一方向のみに割れる性質)にちなんでおり、ゲームの一方向移動という特性を表しています。
cargo run --bin micattix-console
cargo run --bin micattix-ggez --features ggez_ui
use micattix::core::{Board, BoardSize, GameMode, Player};
use micattix::game::GameManager;
// 新しいゲームを作成(2プレイヤーモード)
let mut manager = GameManager::new(BoardSize::Small, GameMode::TwoPlayers);
// カスタムリスナーを追加
manager.add_listener(Box::new(MyCustomListener::new()));
// ゲーム開始
manager.start_game();
// プレイヤーの移動を処理
manager.make_move((1, 2));
// ラウンド終了後、次のラウンドを開始
if manager.session.is_round_over() {
manager.start_next_round();
}
// ゲーム終了
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を実装するには、GameEventListenerトレイトを実装します:
use micattix::game::{GameEvent, GameEventListener};
struct MyCustomUI;
impl GameEventListener for MyCustomUI {
fn on_event(&mut self, event: GameEvent) {
match event {
GameEvent::GameStarted => {
// ゲーム開始時の処理
},
GameEvent::MoveMade(player, target, piece) => {
// 駒が動いた時の処理
},
// その他のイベント
_ => {},
}
}
}
MITライセンスの下で公開されています。