MINI-MAX(sytuacja, gracz, głębokość)
. . if głębokość > limit_głębokości then
. . . return OCEŃ_SYTUACJĘ(sytuacja)
. . r = WYGENERUJ_MOŻLIWE_RUCHY(sytuacja, gracz)
. . if gracz = 0
. . . minimax := 0
. . else
. . . minimax := inf
. . . foreach x in r
. . . . sytuacja' := WYKONAJ_RUCH(sytuacja, x)
. . . . t := MINI-MAX(sytuacja, PRZECIWNIK(gracz), głębokość + 1)
. . . . if gracz = 0 and t > minimax then
. . . . . minimax:=t
. . . . else if gracz = 1 and t < minimax then
. . . . . minimax:=t
. . return minimax
Funkcja kilkukrotnie zwraca mi wartość return Ocen_Sytuację(sytuacja) z racji generowania innych możliwości ruchu(WYKONAJ RUCH). Zależy mi tylko na tym pierwszym returnie,ponieważ dotarcie do poszczególnych returnów na dobrą chwilę zajmuje niepotrzebnie program. Chce, więc uzyskać jeden liść, a nie całą serię liści z tego drzewa. Czy istnieje jakieś rozwiązanie, którego nie znam aby pominąć pozostałe dotarcia do returnu? Problem zapewne można rozwiązać jakoś prosto ;)