Hallo,
ich versuche gerade den Pseudocode für Minmax Algorithmus von Wikipedia zu verstehen.
max() und min() rufen sich gegenseitig mit verringerte Tiefe auf, so werden alle möglichen Konfigurationen bis zur Suchtiefe erstellt und dann mit einer Bewertungsfunktion bewertet.
Aber wie wird dieses (if tiefe == gewuenschteTiefe) erreicht? tiefe wird doch eigentlich immer um 1 verringert. Wird an der Stelle dann auch der beste Zug gespeichert und von einem besseren überschrieben?
ich versuche gerade den Pseudocode für Minmax Algorithmus von Wikipedia zu verstehen.
Code:
int gewuenschteTiefe = 4;
gespeicherterZug = NULL;
int max(int spieler, int tiefe) {
if (tiefe == 0 or keineZuegeMehr(spieler))
return bewerten();
int maxWert = -unendlich;
generiereMoeglicheZuege(spieler);
while (noch Zug da) {
fuehreNaechstenZugAus();
int wert = min(-spieler, tiefe-1);
macheZugRueckgaengig();
if (wert > maxWert) {
maxWert = wert;
if (tiefe == gewuenschteTiefe)
gespeicherterZug = Zug;
}
}
return maxWert;
}
max() und min() rufen sich gegenseitig mit verringerte Tiefe auf, so werden alle möglichen Konfigurationen bis zur Suchtiefe erstellt und dann mit einer Bewertungsfunktion bewertet.
Aber wie wird dieses (if tiefe == gewuenschteTiefe) erreicht? tiefe wird doch eigentlich immer um 1 verringert. Wird an der Stelle dann auch der beste Zug gespeichert und von einem besseren überschrieben?