人間らしくプレーするAIは、どのような戦略を取ればいいのでしょうか。必勝方法を知っているなら、先の必勝のためのAIと同じになりますから、ここではそのような擬人は除外しましょう。思いつくまま候補をあげてみます。でたらめに山を選び、でたらめに石を取る特定の大局観にもとづいて局面を評価し、先読みする先のAIに加えて対戦毎に学習して、評価関数を自動で調整するさすがに、でたらめ君は対戦してもおもしろくないでしょう。先読みの結果必勝AIと同じ結果になることが予測できます。三番目はもちろん、二番目でも対人では強すぎてしまうでしょう。必勝戦略を緩めて、特定の山にだけ注目して、最善手を指すようなAIはどうでしょうか。同じことになってしまいます。この戦略では弱すぎるAIになるでしょう。他に、有効な戦略はないでしょうか。適切な山と石の個数の計算を間違えることがあります。この要素を入れることで、ほどほど強いAIをめざすことにしましょう。間違える頻度を調節すれば、弱くも強くもできるはずです。それでは、プログラムとして戦略を実現してみましょう。nim3.rbAIの選択を、レベルも含めてできるように変更しました。nim_board1.rb前回のものをそのまま使います。nim_human1.rb前回のものをそのまま使います。nim_ai1.rb基本は、前回のものをそのまま使います。継承することを考慮して、method名称を変更しました。nim_ai2.rb基本は、前回のものをそのまま使います。継承することを考慮して、method名称を変更しました。nim_ai3.rb人間らしくプレーする要素(乱数による間違え)を挿入したAI。nim_ai1.rbのAI1を継承しています。nim_ai4.rb人間らしくプレーする要素(乱数による間違え)を挿入したAI。nim_ai2.rbのAI1を継承しています。@strengthは値が小さいほど間違えが発生しにくくなります。†ここまでのプロトタイプ制作によって、nimをプレーするコンピューターの基本機能の実現に確信が持てました。次のフェーズでは、Webアプリケーションとしてプログラムを実装していきます。