Hallo,
ich wollte einen Computergegner mit MinMax und Alpha-beta Verbesserung für Vier Gewinnt programmieren(das ganze auf der Konsole). Wenn ich aber max() und SpielerZug() in der main aufrufe, hängt sich das Programm bei einer bestimmten Spielsituation,nach 10 Zügen auf(bei anderen nicht). Ich habe schon einige Stunden nach dem Fehler gesucht, an den Min() und Max() Methoden kann es eigentlich nicht liegen weil ich das auch schon für Tictactoe so gemacht habe und es dort funktioniert hat.
Schonmal danke im Vorraus.
ich wollte einen Computergegner mit MinMax und Alpha-beta Verbesserung für Vier Gewinnt programmieren(das ganze auf der Konsole). Wenn ich aber max() und SpielerZug() in der main aufrufe, hängt sich das Programm bei einer bestimmten Spielsituation,nach 10 Zügen auf(bei anderen nicht). Ich habe schon einige Stunden nach dem Fehler gesucht, an den Min() und Max() Methoden kann es eigentlich nicht liegen weil ich das auch schon für Tictactoe so gemacht habe und es dort funktioniert hat.
Schonmal danke im Vorraus.
Java:
for (int i = 42; i > 0; i--) { // für alle Felder
if (i % 2 == 0 && i>=eingestellteTiefe ) { // eingestellteTiefe(SuchTiefe) ist 8
max(eingestellteTiefe, -10000, 10000); // ComputerZug
Feld[bestCol][bestRow] = Computer; // bestes Feld
FeldAusgeben(Feld);
System.out.println();
züge++; // Züge werden hochgezählt um zuschauen wer dran ist
}
if (i % 2 == 1 ) {
SpielerZug(); // Spielerzug, Koordianten eingeben
züge++;
}
Hier bei hängt sich das Programm auf:
O ist der Computer und Spieler X, der Computer macht einfach keinen Zug mehr , obwohl er dran wäre, i ist dann 32
*******
*******
***O***
**XX***
*OXX***
OOOX*** Wenn ich aber das noch einfüge geht es , was irgendwie keinen Sinn ergibt
if(i==32) {
max(eingestellteTiefe, -10000, 10000);
Feld[bestCol][bestRow] = Computer;
FeldAusgeben(Feld);
System.out.println();
züge++;
}