un petit jeu de casse-tête qui consiste réordonner les chiffres dans lordre croissant.
Conclusion :
On peut lui ajouter un moteur qui permet de réordonner les chiffres automatiquement en construisant un arbre de coups possibles et de chercher la solution , méthode MINMAX par exemple.
Merci de vos remarques et commentaires sur mon adresse E-MAIL : kra_radouane@yahoo.fr
En fait, c'est dans la partie InitGame, tu écris:
For N := 1 To 50 Do
Begin
I := Random(CUR_DIM) + 1;
J := Random(CUR_DIM) + 1;
II := Random(CUR_DIM) + 1;
JJ := Random(CUR_DIM) + 1;
nValue := PlayMatrix[I,J];
PlayMatrix[I,J] := PlayMatrix[II,JJ];
PlayMatrix[II,JJ] := nValue;
End;
ce qui correspond à faire des permutations aléatoires sur la matrice des cases, en partant du puzzle reconstruit. Le problème, c'est que la chemin inverse pour revenir au puzzle de départ lorsqu'on joue n'existe pas forcément...
Imaginons que plutot que d'effectuer la boucle 50 fois, tu ne le fais qu'une fois, et qu'elle échange 2 cases contigües. Eh bien, tu remarqueras qu'en jouant, si tu veux permuter ces 2 cases, il te faut aussi en permuter 2 autres... donc le jeu est impossible à finir.
Shématiquement, il faudrait faire:
white square:=case en bas à droite
for n:=1 to 50 do
case random(4) of
0:déplacer le white square vers la gauche
1:vers la droite
2:en haut
3:en bas
end;
Alors, tu es sur que le jeu a une solution, puisque tu es parti d'une configuration initiale où le puzzle est résolu, et que tu n'as fait ques des permutations autorisées qui sont inversibles (c'est à dire où l'in peut revenir en arrière).
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.