Ich mache eine KI für mein Dame-Spiel und versuche es so schwer wie möglich zu machen. Hier sind die aktuellen Kriterien für einen Zug auf der schwierigsten Schwierigkeitsstufe:
1: Suchen Sie nach einem Block: In diesem Fall wird ein Teil bedroht und ein anderes Teil kann zum Schutz hineingezogen werden. Hier ist ein Beispiel:
Schwarze Bewegungen
|W| |W| |W| |W| |
| |W| |W| |W| |W|
|W| | | |W| |W| |
| | | |W| | | | |
| | | | |B| | | |
| |B| | | |B| |B|
|B| |B| |B| |B| |
| |B| |B| |B| |B|
Weiße Blöcke
|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: Teile aus der Gefahrenzone bewegen: Wenn ein Teil bedroht ist und ein Teil nicht für dieses Teil blockieren kann, versucht es, sich aus dem Weg zu räumen. Wenn sich das Teil nicht aus dem Weg räumen kann, ohne immer noch in Gefahr zu sein, ignoriert der Computer das Teil.
3: Wenn der Computerspieler Könige besitzt, versucht er, feindliche Teile auf dem Brett zu "jagen". Wenn keine Bewegungen ausgeführt werden können, die den König oder andere Teile nicht gefährden, ignoriert der Computer diese Regel.
4: Jedes Teil, das dem Computer in Spalte 1 oder 6 gehört, versucht, zur Seite zu gehen. Wenn sich ein Stück in Spalte 0 oder 7 befindet, befindet es sich in einer sehr strategischen Position, da es nicht erfasst werden kann, während es sich in einer dieser Spalten befindet
5: Es wird ein gebildeter zufälliger Zug ausgeführt. Der Zug gefährdet weder das sich bewegende Stück noch ein Stück, das sich auf dem Brett befindet.
6: Wenn keine der oben genannten Möglichkeiten möglich ist, wird ein zufälliger Zug ausgeführt.
Diese Frage ist nicht wirklich spezifisch für eine Sprache, aber wenn alle Beispiele in Java sein könnten, wäre das großartig, wenn man bedenkt, dass diese App in Android geschrieben ist. Hat jemand Raum für Verbesserungen in diesem Algorithmus? Gibt es etwas, das es besser machen würde, Dame zu spielen?