bonjour, j'ai un projet en C, je doit programmer un Sudoku, et j'ai vraiment besoin le plus vite possible, svp.
j'ai besoin de faire un tableau de 2 dimensions, contenant 9 ligne, et 9 colonnes.
je doit remplir ce tableau par des nombres aléatoires, en condition qu'un chiffre ne soit pas présent 2 fois dans la meme ligne, ni dans la meme colonne, ni dans un sous carré.
Est possible de m'aider ??
merci d'avance
si c possible ...
sa fait plus de 2 semaine que j'essai et pas de résultats. je doit termnier ce soir, et je n'est pas réussi.
ce que j'ai fait, c'est une fonction qui vérifie si le chiffre x est possible pour une case X. x ne doit pas etre présent 2 fois dans la meme ligne ni la meme colonne, ni dans le meme sous carré.
cette fonction va construire un tablea de possibilités de 2 dimensions, 81 lignes, et 9 colonnes. les colonnes sont de 1 jusq'à 9. la ligne du tableau vau le numero de la case du jeu initial, par exemple la case (0,0) de la grille du jeu possède le numero de ligne 0 dans le tableau de possibilté. case (0,1) correspond à 1 et inci de suite.
les cases du tableau de possibilités vont 0 si l'indice de colonne n'est pas valide pour la case de la grille ayant l'indice de ligne de possibilté, et 1 s'il est valide.
maintenant ce que je veut, c'est de faire une grille complète, remplie aléatoirement, de 1 jusq'à 9, suivant les conditions de validité du chiffre bien sur. et à partir de cette grille je vais générer une grille "masquée" pour jouer.
comme ca j'ai la solution, et le jeu.
Yoshi Noir: tu fais vraiment chier en fait, toujours a rembarrer tout le monde. tu te crois meilleurs ? c'est pour ca que tu prends le droit de faire ca ?
dark_angelo: Beh pkoi tu essayes pas tant que tes contraintes ne sont pas satisfaites ?
somme des chiffres dans les blocs = somme des chiffres dans une ligne = somme des chiffres dans une colonne = 45
Hum... c'est pas excellent, pke c'est basiquement du brute force.
Tu peux trouver des trucs bien moins cons que ca...
Yoshi Noir: même remarque, et même en rouge si tu trouves que c'est plus parlant...
sinon y'a une autre solution, c'est de commencer avec une grille valide (tu en choisis une quelconque, peu importe), et d'inverser deux à deux des lignes et/ou des colonnes, un certain nombre de fois, puisque ça ne rendra pas la grille invalide mais que ça mélangera quand même les chiffres.
Zeph Le 08/12/2006 à 13:57 vi je sais bien que c'est Mal (par contre c'est aléatoire, l'univers est juste plus réduit ^^), mais bon il a qu'une journée... ça peut être une solution ^^

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
mais la je parlais d'une condition suffisante pour avoir un vrai sudoku ^^
j'ai pas dit qu'on etait dans cette phase la
En meme temps générer une grille avec un bruteforce, c'est pas plus simple ? (a coder je parle^^)

Proud to be CAKE©®™
GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.
generalement si, mais il peut y avoir des bien meilleures solutions qui ne sont pas specialement plus difficiles a programmer...
#HS#de toute facon, le plus important c la structure de donnees#HS#
Nil Le 08/12/2006 à 14:40 Pollux > tu parles à Yoshi Rose, j'imagine ? (non parce que moi je ne fais pas de permutations, juste de l'éjection ^^)