マッチ棒ゲーム 

マッチ棒ゲームは,DxLib(DirextXをラッパしたライブラリ)を用いて作成したゲームです.

マッチ棒ゲームは,割りばし,戦争などとも呼ばれる,2人で行う手遊びのひとつです. 2人が人差し指を1本ずつ出した状態から始まり,交互に相手の指を攻撃します. 攻撃された手は攻撃してきた手の指の本数だけ,指を立てます. 指の数が5本になったら,その手はゲームから脱落します. 両方の手が脱落してしまった方が負けとなります. 詳しいルールは,Wikipediaを参照してください.

本ゲームは,この手遊びをコンピュータと対戦する形で再現したものです. コンピュータはminimax法を用いて最善な手を選択します. グラフ探索によって,すべての手の組み合わせを試すことで,最適な手を選択します.

プロジェクトのレポジトリはこちら GitHub (matchstick-game)

 こだわり 

このゲームはさまざまなローカルルールとそれに対応するCPUを実装した点が特徴です. ローカルルールとしては,指の数が6本を超えた場合の処理の違いや,指の本数を自由に組み替えることができる采配機能のオンオフなどがあります.

また,CPUの強さはレベルをEasy,Normal, Hard, Impossibleの4段階から選択できます. Impossibleはminimax法の探索深さを最大に設定し,最善手を選択するため,ほぼ勝ち目がありません. 逆に,Easyは最悪手を選択するため,逆に負けることが難しいです. このように,CPUの強さを選択できることで,初心者から上級者まで楽しめるゲームとなっています.

ゲームの結果を保存する機能も実装しており,過去の対戦結果を確認できます. 加えてAIによる評価機能も実装しており,戦略を立てる際の参考になります.

メニュー画面

メニュー画面

AIによる評価機能

AIによる評価機能

トップに戻る