Advertisement
Guest User

minimax meilleurCoup

a guest
Mar 20th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.87 KB | None | 0 0
  1. let rec meilleurCoup profondeurMax etatInitial profondeur etatFils evaluation =
  2. let listesFils = etatFils etatInitial
  3. in if emptyList listesFils || profondeurMax = profondeur then (evaluation etatInitial,"") else f profondeurMax profondeur listesFils etatFils evaluation
  4. and f profondeurMax profondeur listFils etatFils evaluation =
  5. match listFils with
  6. [] -> if profondeur mod 2 = 0 then (moinsInfini,"") else (plusInfini,"")
  7. | (coupPossible,etatFilsObtenue)::liste -> let (v,chemin) = meilleurCoup profondeurMax etatFilsObtenue (profondeur + 1) etatFils evaluation
  8. and (vPrime,cheminPrime) = f profondeurMax profondeur liste etatFils evaluation
  9. in if profondeur mod 2 = 0 then let maxV = max v vPrime in (maxV,if maxV = v then coupPossible else cheminPrime)
  10. 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