Amazonでボードゲームを探す

分析2

必勝のためのAIについての考察 2 (逆型nim)

正型nimのAIができました。 nimページでも記述しましたが、の逆型nimを勝つための戦略は、正型の逆では不十分です。おさらいすると、

もし、どの山も一つの石しか持たなければ、正型の勝ち状態が負けの状態になります。しかし、いずれかの山に二つ以上の石がある場合は、状態が逆転します。 逆型nimの戦略は、以下のようになります。

  1. いずれかの山に二つ以上の石が残っているうちは、正型の時と同じ戦略でゲームを進め
  2. すべての山が一つの石しかない状態になると、相手の手番に奇数個の山が残るように石を取ります
  3. 自分の手番の後、安定な状態を作れない場合、でたらめに、かつ、十分に少ない石を取る

それでは、プログラムとして戦略を実現してみましょう。

filenim2.rb
ルールによって、AIの選択をします。初期化の順序を変更しました。
filenim_board1.rb
前回のものをそのまま使います。
filenim_human1.rb
前回のものをそのまま使います。
filenim_ai1.rb
前回のものをそのまま使います。
filenim_ai2.rb
今回の戦略を実装したクラス。

2.の状態になってからでは、順次石を一つずつとることしかできませんので、 1.の状態で、石を有する山の内、一つの山以外がすべて石を一つしか持たない状態 になった場合の判断を修正しなければなりません。 nim_ai2.rbの実装部分を確認してみてください。


...つづく (2009/4/6)

SEE ALSO

Last-modified: 2014-08-23 (土) 17:58:05