[Fire and Ice]


#navi(nimをプレーするコンピューター・プログラム)
** 分析2 [#d07d33c8]
*** 必勝のためのAIについての考察 2 (逆型nim) [#r0b86415]
正型nimのAIができました。
[[nim]]ページでも記述しましたが、の逆型nimを勝つための戦略は、正型の逆では不十分です。おさらいすると、

もし、どの山も一つの石しか持たなければ、正型の勝ち状態が負けの状態になります。しかし、いずれかの山に二つ以上の石がある場合は、状態が逆転します。
逆型nimの戦略は、以下のようになります。
+ いずれかの山に二つ以上の石が残っているうちは、正型の時と同じ戦略でゲームを進め
+ すべての山が一つの石しかない状態になると、相手の手番に奇数個の山が残るように石を取ります
+ 自分の手番の後、安定な状態を作れない場合、でたらめに、かつ、十分に少ない石を取る

それでは、プログラムとして戦略を実現してみましょう。
:&ref(nim2.rb);|ルールによって、AIの選択をします。初期化の順序を変更しました。
:&ref(nim_board1.rb);|前回のものをそのまま使います。
:&ref(nim_human1.rb);|前回のものをそのまま使います。
:&ref(nim_ai1.rb);|前回のものをそのまま使います。
:&ref(nim_ai2.rb);|今回の戦略を実装したクラス。

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

----
...つづく (2009/4/6)
* SEE ALSO [#f8550629]
#related

* Feedback [#u1caae51]
&facebooklike(400x200,action="like",scrolling="yes",show_face="true",layout="standard",colorscheme="light",align="right",float="right",rlmargin="10");
&facebooklike(400x180,action="like",scrolling="yes",show_face="true",layout="standard",colorscheme="light",align="right",float="right",rlmargin="10");
#vote(おもしろい[0],役に立つ[0],興味ない[0],理解できない[0],やってみたい[0],食べてみたい[0])
#pcomment_nospam(noname)

TOP   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS   [Privacy Policy]