bonjour,
je réalise un site dynamique mi Flash mi HTML sur le thème de Klotski.
voir cette page google si vous ne connaisez pas: [ame="http://www.google.fr/search?hl=fr&safe=off&client=safari&rls=en&q=klotski+game&bav=on.2,or.r_gc.r_pw.&biw=1279&bih=680&um=1&ie=UTF-8&tbm=isch&source=og&sa=N&tab=wi"]klotski game - Recherche Google[/ame]
Mon objectif et de laisser la liberté au joueur de créer leur propre puzzle et de le partager au autre.
Mon projet personnel en et à 90% j'ai donc presque terminé.
Je bloque sur la partie détermination pour savoir si un Puzzle est possible ou non.
J'ai commencé par un algorithme de résolution simple , avec un choix aléatoire des pièces puis un déplacement semi-aléatoire de ses pièce ,jusqu'à la situation final désiré.
Avec surprise cette technique fonctionne et j'arrive à résoudre un puzzle en quelque million de coup pour les puzzles les plus difficile.
Mais cette technique présente deux inconvénient elle est trop longue(surtout pour du flash) et elle ne détermine pas si le puzzle est réalisable ou non.
Ensuite j'ai essayer la même technique mais avec du backtraking , mais le résultat est décevant.
J'ai donc décidé de réaliser un vrai algorithme de résolution.
Mais je bloque . L'idée de départ que je me suis fixé était de pousser le bloc qui me gène pour déplacer un bloc choisit au bon endroit. Principe réalisé grace à la récurrence.
Sa fonctionne moyen , donc certaine situation on bloc dans des boucles infini ou un bloc ira d'une position successif et tournera en rond.
De plus Je me suis rendu compte que sa marche pas ,si jamais je doit déplacer deux blocs pour pouvoir déplacer la pièce voulut.
J'ai déjà beaucoup travaillé dessus , mais je pense qu'il me faudrait un autre point de vu pour crée l'algorithme.
Je cherche quelqu'un pour m'expliquer le principe (vu que j'ai pas trouvé seul) à utiliser pour résoudre ces type de puzzle informatiquement.
Partager