int AlphaBeta(int tiefe, int alpha, int beta) {
BOOL PVgefunden = FALSE;
if (tiefe == 0) return Bewerten();
GeneriereMoeglicheZuege()
while (ZuegeUebrig()) {
FuehreNaechstenZugAus()
if (PVgefunden) {
wert = -AlphaBeta(tiefe-1, -alpha-1, -alpha);
if (wert > alpha && wert < beta) // Fenster war zu klein :(
wert = -AlphaBeta(tiefe-1, -beta, -alpha);
} else
wert = -AlphaBeta(depth-1, -beta, -alpha);
MacheZugRueckgaengig()
if (wert >= beta) return beta;
if (wert > alpha) {
alpha = wert;
PVgefunden = TRUE;
}
}
return alpha;
}