Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let rec meilleurCoup profondeurMax etatInitial profondeur etatFils evaluation =
- let listesFils = etatFils etatInitial
- in if emptyList listesFils || profondeurMax = profondeur then (evaluation etatInitial,"") else f profondeurMax profondeur listesFils etatFils evaluation
- and f profondeurMax profondeur listFils etatFils evaluation =
- match listFils with
- [] -> if profondeur mod 2 = 0 then (moinsInfini,"") else (plusInfini,"")
- | (coupPossible,etatFilsObtenue)::liste -> let (v,chemin) = meilleurCoup profondeurMax etatFilsObtenue (profondeur + 1) etatFils evaluation
- and (vPrime,cheminPrime) = f profondeurMax profondeur liste etatFils evaluation
- in if profondeur mod 2 = 0 then let maxV = max v vPrime in (maxV,if maxV = v then coupPossible else cheminPrime)
- else let minV = min v vPrime in (minV,if minV = v then coupPossible else cheminPrime);;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement