fb:porticula NoPaste
14.2: Minimax-Suche
Uploader: | nemored |
Datum/Zeit: | 29.10.2011 00:56:33 |
Hinweis: Dieser Quelltext ist Bestandteil des Projekts OpenBook: 2D-Spieleprogrammierung, zu dem es auf FreeBASIC-Portal.de eine Projektseite gibt.
' *** CODE 14.2: Minimax-Suche
FUNCTION minimax (resttiefe AS INTEGER) AS INTEGER
DIM AS INTEGER ermittelt, zugWert
ermittelt = -2^31 ' auf den kleinstmoeglichen Wert stellen
FOR i AS INTEGER = 1 TO anzahlZuege ' alle moeglichen Zuege durchspielen
fuehreZugAus(i)
IF restTiefe <= 1 THEN ' wurde die maximale Berechnungstiefe
zugWert = berechneSpielwert ' erreicht, dann bewerte die Situation
ELSE
zugWert = -minimax(restTiefe-1) ' rekursiv den Gegenzug berechnen
END IF
nimmZugZurueck(i) ' Ausgangssituation wiederherstellen
IF zugWert > ermittelt THEN
ermittelt = zugWert ' besten Zug merken
END IF
NEXT
RETURN ermittelt
END FUNCTION