私はチェッカーゲームのAIを作成しており、できる限り難しくするようにしています。最も困難な難題に取り組むための現在の基準は次のとおりです。
1:ブロックを探す:これは、ピースが脅迫されており、別のピースを後ろに移動して保護できる場合です。次に例を示します。
ブラックムーブ
|W| |W| |W| |W| |
| |W| |W| |W| |W|
|W| | | |W| |W| |
| | | |W| | | | |
| | | | |B| | | |
| |B| | | |B| |B|
|B| |B| |B| |B| |
| |B| |B| |B| |B|
白いブロック
|W| |W| |W| |W| |
| |W| | | |W| |W|
|W| |W| |W| |W| |
| | | |W| | | | |
| | | | |B| | | |
| |B| | | |B| |B|
|B| |B| |B| |B| |
| |B| |B| |B| |B|
2:ピースを危険から遠ざける:脅威にさらされているピースがあり、ピースがそのピースをブロックできない場合、邪魔にならないように移動しようとします。ピースが危険にさらされずに邪魔にならない場合、コンピュータはピースを無視します。
3:コンピュータプレーヤーがキングを所有している場合、ボード上の敵の駒を「狩り」しようとします。キングや他の駒を危険にさらさない動きができない場合、コンピュータはこのルールを無視します。
4:列1または6にあるコンピューターが所有している部分は、横に移動しようとします。ピースが列0または7にある場合、これらのいずれかの列にある間はキャプチャできないため、非常に戦略的な位置にあります。
5:教育を受けたランダムな動きをします。この動きは、動いている駒やボード上の駒を危険にさらすことはありません。
6:上記のいずれも不可能な場合、ランダムに移動します。
この質問は実際には特定の言語に固有のものではありませんが、このアプリがAndroidで作成されていることを考えると、すべての例がJavaである可能性がある場合は、すばらしいでしょう。誰かこのアルゴリズムに改善の余地があると思いますか?チェッカーを上手にプレイできるものはありますか?