function AlphaBeta (alpha,beta:integer; prof:byte; var meilleur:coup) :integer; {AlphaBeta en notation 'Négamax'} var Resultat,Maximum: integer; Ci,Reponse:coup; begin Maximum:=-32000; {plus petit que tout résultat d'évaluation} [*** cherche et classe tous les coups ***] Ci:= PremierCoup; repeat jouer(Ci); if (prof=1) then Resultat:=-evalue else Resultat:=-AlphaBeta(-beta,-alpha,prof-1,Reponse); {l'alpha de l'un devient le beta de l'autre..} dejoue(Ci); if (Resultat>Maximum) then begin Maximum:=Resultat; Meilleur:=Ci; end; {if} if (Resultat>alpha) then alpha:=resultat; Ci:=CoupSuivant; until PlusDeCoups or (alpha>=beta); AlphaBeta:=Maximum; end;