A voir également:
- [code Java] Kakuro
- Code ascii - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Code puk bloqué - Guide
- Eclipse java - Télécharger - Langages
2 réponses
Bonjour karibou, bonjour à tous :)
je me permet de réveiller ton post car moi aussi je suis interessé par la création de grille, simplement
--- il faut être plus précis que ça : je suppose qu'il s'agit bien de la question que beaucoup posent, à savoir comment créer une grille
--- je connais le procédé le plus utilisé, mais je ne suis qu'à mi-parcours. A savoir
1) créer un algorithme permettant de résoudre des grilles (si tu ne sais pas le faire, va faire un tour du côté de cette page en anglais :
http://forum.java.sun.com/thread.jspa?threadID=766548&tstart=240
2) utiliser cet algorithme pour créer des grilles
C'est justement sur ce point 2) que j'ai besoin d'aide :
a) Comment utiliser au mieux un tel algorithme (le mien est capable de révéler toutes les solutions) ?
http://www.javafr.com/codes/EDITEUR-KAKURO_41135.aspx
Si tu veux des explications sur ma source, je t'en donnerais .
b) Comment créer des grilles du degré de difficulté souhaité (échelle de 1 à 4 par exemple) ?
Merci d'avance :)
je me permet de réveiller ton post car moi aussi je suis interessé par la création de grille, simplement
--- il faut être plus précis que ça : je suppose qu'il s'agit bien de la question que beaucoup posent, à savoir comment créer une grille
--- je connais le procédé le plus utilisé, mais je ne suis qu'à mi-parcours. A savoir
1) créer un algorithme permettant de résoudre des grilles (si tu ne sais pas le faire, va faire un tour du côté de cette page en anglais :
http://forum.java.sun.com/thread.jspa?threadID=766548&tstart=240
2) utiliser cet algorithme pour créer des grilles
C'est justement sur ce point 2) que j'ai besoin d'aide :
a) Comment utiliser au mieux un tel algorithme (le mien est capable de révéler toutes les solutions) ?
http://www.javafr.com/codes/EDITEUR-KAKURO_41135.aspx
Si tu veux des explications sur ma source, je t'en donnerais .
b) Comment créer des grilles du degré de difficulté souhaité (échelle de 1 à 4 par exemple) ?
Merci d'avance :)
Bonjour,
J'ai enfin réussi à créer mes premières grilles kakuro . Voici comment je m'y suis pris :
0) Les mots que j'utilise :
-> indice : chiffre qui indique la somme à compléter dans les cases prévues à cet effet .
-> case indice
-> remplissage : chiffre qui occupe une case prévue pour être complétée par l'utilisateur (toutefois, certains concepteurs de kakuro décident de déjà attribuer des valeurs à quelques-unes)
-> case remplissage
->case neutre : case qui ne peut rien accueillir, ni indice ni remplissage
-> bloc : ensemble de cases remplissages faisant partie d'une même "somme", et la case indices associée .
1) Le solveur : j'utilise la méthode des candidats uniques . Elle consiste à détermine les chiffres possibles dans le bloc horizontal et dans le bloc vertical (en tenant compte des chiffres déjà places dans les autres du bloc concerné, et en ayant au préalable éliminé les combinaisons impossibles dans chaque bloc toujours en fonction des chiffres déjà placés dans les autres cases du même bloc) et à déterminer les chiffres communs aux deux ensembles .
L'implémentation de mon solveur constitue peut-être l'une des causes de mon problème de rapidité .
2) Le générateur
Cette fois-ci, je m'y prends de manière beaucoup plus brutale : faute d'avoir trouvé mieux .
a)je créée un vecteur(java.util.Arraylist pour les programmeurs JAVA) qui regroupe toutes les casesResolution à remplir : chaque caseResolution est une structure qui pointe sur une case remplissage et sur les deux blocs associées (juste par coordonnées).
b) je vide les cases remplissage de la grille qui me sert de modèle
c)je place des chiffres au hasard dans toutes les casesResolutions du vecteur, mais en évitant les répétitions dans les blocs
d)je vérifie que la solution est unique à l'aide du solveur : mais le solveur est appelé en mode "je n'écris pas dans les cases" (un boolean en paramètre suffit largement) .
e) si il y a plusieurs solution je vide les casesResolution et repasse en c). ATTENTION au risque de blocage infini : je limite le nombre d'essais : dans mon cas j'ai mis 10000 essais .
f) sinon je calcule les différents indices des blocs et j'affecte la grille à l'interface utilisateur .
Mais comme le précise le titre, j'ai encore un gros soucis de lenteur (45s pour les grilles 8*8 mettant le plus de temps à construire : aie!) . Mais je travaille encore sur mon projet pour améliorer ceci .
J'ai enfin réussi à créer mes premières grilles kakuro . Voici comment je m'y suis pris :
0) Les mots que j'utilise :
-> indice : chiffre qui indique la somme à compléter dans les cases prévues à cet effet .
-> case indice
-> remplissage : chiffre qui occupe une case prévue pour être complétée par l'utilisateur (toutefois, certains concepteurs de kakuro décident de déjà attribuer des valeurs à quelques-unes)
-> case remplissage
->case neutre : case qui ne peut rien accueillir, ni indice ni remplissage
-> bloc : ensemble de cases remplissages faisant partie d'une même "somme", et la case indices associée .
1) Le solveur : j'utilise la méthode des candidats uniques . Elle consiste à détermine les chiffres possibles dans le bloc horizontal et dans le bloc vertical (en tenant compte des chiffres déjà places dans les autres du bloc concerné, et en ayant au préalable éliminé les combinaisons impossibles dans chaque bloc toujours en fonction des chiffres déjà placés dans les autres cases du même bloc) et à déterminer les chiffres communs aux deux ensembles .
L'implémentation de mon solveur constitue peut-être l'une des causes de mon problème de rapidité .
2) Le générateur
Cette fois-ci, je m'y prends de manière beaucoup plus brutale : faute d'avoir trouvé mieux .
a)je créée un vecteur(java.util.Arraylist pour les programmeurs JAVA) qui regroupe toutes les casesResolution à remplir : chaque caseResolution est une structure qui pointe sur une case remplissage et sur les deux blocs associées (juste par coordonnées).
b) je vide les cases remplissage de la grille qui me sert de modèle
c)je place des chiffres au hasard dans toutes les casesResolutions du vecteur, mais en évitant les répétitions dans les blocs
d)je vérifie que la solution est unique à l'aide du solveur : mais le solveur est appelé en mode "je n'écris pas dans les cases" (un boolean en paramètre suffit largement) .
e) si il y a plusieurs solution je vide les casesResolution et repasse en c). ATTENTION au risque de blocage infini : je limite le nombre d'essais : dans mon cas j'ai mis 10000 essais .
f) sinon je calcule les différents indices des blocs et j'affecte la grille à l'interface utilisateur .
Mais comme le précise le titre, j'ai encore un gros soucis de lenteur (45s pour les grilles 8*8 mettant le plus de temps à construire : aie!) . Mais je travaille encore sur mon projet pour améliorer ceci .