Bonjour ,
Dans le cadre d'un projet de 1 ère année , on nous demande de programmer un mastermind en ocaml, de façon à ce que l'ordinateur puisse trouver la combinaison en un nombre limité de coups .On nous oblige a choisir un type arborescent pour les combinaisons ,j'ai donc défini ce type :
Code:
type pion = Rouge| Vert|Jaune|Bleu|Magenta|Blanc|Noir|Cyan ;;
type  combinaisons= Node of bool*(pion*combinaisons)list  ;;
J'ai quelques difficultés a écrire une fonction qui génère la combinaison la plus longue possible et qui a pour paramètre l'ensemble des combinaisons encore possibles, celà dit avec un type de combinaisons string list list , j'ai réussi a écrire cette fonction , mais je ne sais pas comment l'aborder avec le type arborescent que j'ai définit :
Code:
let rec combinaison_liste taille =
     let rec construire_aux l=
           match l with 
             |[]->[]
             |t::q->(("Rouge"::t)::(("Vert"::t)::(("Jaune"::t)::(("Bleu"::t)::(("Magenta"::t)::(("Blanc"::t)::(("Noir"::t)::(("Cyan"::t)::construire_aux q)))))))) 
     in match taille with 
             |1->(["Rouge"],["Vert"],["Jaune"],["Bleu"],["Magenta"],["Blanc"],["Noir"],["Cyan"])
             |n-> if n<=0 then failwith "n doit etre un nombre strictement positif "
                  else construire_aux (combinaison_liste(taille-1)) ;;
J'ai vraiment besoin d'aide pour écrire cette fonction et merci