大富豪をAI(C#(Code DOM)とPowerShell)に対応
ということで、大富豪をAI(DLR利用)に対応 - ++C++; // 管理人の日記をちょっと修正。
Code DOM 使って C# で AI 与えれるようにしたのと、PowerShellスクリプトにも対応。
- ソース一式(zip圧縮)
- WPFアプリ(ClickOnce配布)
- ランダムに出せるカードを出すサンプルPowerShellスクリプト
- ランダムに出せるカードを出すサンプルC#ソース
- 出せる範囲で一番弱いカードを出すサンプルC#ソース
AI 設定するところで C# と PowerShell を読めるようになりました。
Ruby はうまく動くサンプルを作れず・・・
あと、今後としては、MEF(Managed Extension Framework)でコンパイル済みのDLLを使ってAI定義とかもやってみたい。
C# 版
ソースファイル中で Daifugou.IArtificialIntelligence インターフェースを継承したクラスを1個定義します。
PowerShell 版
DLR版同様、スクリプトに対して以下の変数が渡されます。
- $hand: 今現在の手札一覧(Card型の配列)
- $table: 今、場に出ているカード一覧(Card型の配列)
- $rank: 今、場に出ているカードのランク(int、複数枚出ている場合はそのうち最大のランク)
- $suit: (スイート縛り状態の場合のみ)どのスイートで縛られているか(enum Suit)
- $mode: 今現在のモード(enum Mode: ビットフラグ。詳細は後述)
- $revolution: 革命状態かどうか(bool)
- $history: 過去1ターンの履歴(History型。詳細は口述)
出したいカードは戻り値として返します。