7Fermer9
SallyLe 29/11/2009 à 14:05
Pour les couleurs : c'est possible d'utiliser des strings effectivement. Mais ça dépend combien il y a de couleurs différentes.
utiliser un type spécial qui n'aura le droit d'avoir que ces valeurs, et cela peut être plus pratique après, donc en général on fait ça. Comme ceci :type couleur = Noir | Blanc | Rouge | Bleu | Jaune | Vert;;S'il n'y a que trois ou quatre couleurs différentes tu peuxSi tu définis ce type, ensuite quand tu taperas Bleu ou Blanc le compilateur reconnaîtra automatiquement qu'il s'agit d'une couleur. (Et il faudra le mettre sans guillemets, car il ne s'agit plus d'une chaîne de caractères mais d'une constante définie dans le programme.)

chaque case a quatre portes ? si oui, tu peux peut-être utiliser de nouveau un enregistrement :type mur = {haut : bool; bas : bool; gauche : bool; droite : bool};;Mais bon ton problème principal c'est les murs. Si je comprends bienLe type booléen peut prendre deux valeurs, vrai ou faux (enfin true et false), tu peux utiliser true pour représenter une porte ouverte et false pour une porte fermée.
Note : ceci n'est qu'un exemple, si une case n'a que deux portes tu peux bien sûr remplacer cette définition par autre chose qui correspond mieux. L'inconvénient de ce que j'ai écrit là est que la porte de droite de la case 3,2 est probablement la même que la porte de gauche de la case 3,3 , et je les représente séparément ce qui n'est pas forcément malin (je pourrais me retrouver avec une qui est fermée et pas l'autre, alors que c'est la même, ce qui provoquerait sans doute un bug). À toi de voir ce qui est le mieux.

ase = {couleur : couleur; mur : mur};;Avec ces définitions tu aurais alors :type c(cela fait référence aux types couleur et mur'où la répétition ^^) ettype m = { largeur : int; hauteur : int; matrice : case array array; };; que j'ai définis plus haut, et j'appelle aussi les champs couleur et mur, dEnsuite, si labyrinthe est une variable de type mcase située en ligne 3 colonne 2 tu utilises :labyrinthe.matrice.(3).(2).couleur, pour accéder à la couleur de la cette même case est ouverte tu utilises :labyrinthe.matrice.(3).(2).mur.droitepour savoir si la porte de droite de atrice.(3).(2).mur.baspour la porte du bas :labyrinthe.metc.

voilà smile