1

J'aimerai faire un sudoku mais je ne sais pas par quel bout commencer triso

Déjà je le fait en BASIC ou en ASM ??

J'ai encore jamais fait de programme en C. peut etre l'occasion.

Je dois utiliser TIGCC ??

Ca sera compliqué à faire vous pensez le sudoku ??

2

Pour le language, tu choisis grin
Mais, sudoku, c'est quoi comme jeu ? c'est sexuel ?

3

grin

C'est un jeu très populaire ces temps ci

http://www.su-doku.fr/index.php?&ref_url=goo-sud.su-doku.fr

4

c'est tres faisable en basic
c'est tres facilement faisable en c

je ferais ca en C parce que ca peut permettre d'essayer de faire des algos de resolution ou de generation de grilles.
avatar納 豆パワー!
I becamed a natto!!!1!one!

5

OK smile

En fait il faut remplir toute la grille et la valider.

Après la validation, je fais tourner un algorithme de vérification.

Je peux my prendre comme ça ??

6

a toi de voir !
avatar納 豆パワー!
I becamed a natto!!!1!one!

7

liquid
: je ferais ca en C parce que ca peut permettre d'essayer de faire des algos de resolution ou de generation de grilles.

et en basic c'est pas possible ? grin
boh, une grille de 9x9, même en basic ça doit pas être la mort quand même ^^
avatarAll right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

8

de faire un algo de generateur de grilles ? voire de resoultion ? ben si t'es pas presse trinon
avatar納 豆パワー!
I becamed a natto!!!1!one!

9

hmm, franchement c'est pas dit que sur ce coup-là le basic ne soit pas adapté...


EDIT : apparemment oui ça colle bien avec les fonctions de manipulation de listes du TIOS, je viens d'en écrire qui peut résoudre un "Medium" de websudoku.com pris au hasard en 100 secondes (mais il est peut-être aussi capable d'en résoudre des plus durs, pas encore eu le tps d'essayer ^^) Mais ça doit être possible de faire encore mieux smile

10

Si tu veux apprendre les techniques de résolution tu peux regarder ici (si tu veux pas coder un solveur grosse brute).
Si tu veux voir un exemple de solveur avec ses sources ici et le javaScript la
avatarCombien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

11

Merci Twindruff !!!!

12

Cool un sudoku smile!!!!!

13

Pollux :
en 100 secondes


oue c'est ce que je disais quoi
avatar納 豆パワー!
I becamed a natto!!!1!one!

14

Bon j'ai aussi essayé de faire un résolveur en basic, et il met aussi beaucoup de temps !
Pollux> Le mien met de 1 minute à 3 minutes pour résoudre un sudoku de niveau facile à moyen, as-tu testé le tien sur un difficile ? En tout cas le mien ne marche pas sad

Pour ceux que ca intéresse, mon programme est disponible sur http://j.petitjean.club.fr/bobti89/download/sudoku.zip
Et voilà un bon lien pour une approche de résolution ici

Sinon, voilà en détail ce que je fais :
Le programme en lui-même :
solvdoku(m)
Prgm
Local  nb,nb1
m2ms(m)»m
nbcaser(m)»nb
ClrIO
0»nb1
While  nbnb1
nb»nb1
Disp  nb
rempm(m)»m
seq(seq(when(dim(m[i,j])>1,"",m[i,j]),j,1,9),i,1,9)»m
nbcaser(m)»nb
EndWhile
ms2m(m)»res
Pause  "Terminé !"
DispHome
EndPrgm

La matrice résolue est retournée dans la variable res.

Les fontions :
m2ms(m)
Func
seq(seq(when(m[i,j]=0,"",string(m[i,j])),j,1,9),i,1,9)
EndFunc

ms2m(m)
Func
seq(seq(when(m[i,j]="",0,expr(m[i,j])),j,1,9),i,1,9)
EndFunc

nbcaser(m)
Func
Local  l
matÐlist(m)»l
sum(seq(when(l[i]="",1,0),i,1,81))
EndFunc

nbposs(str)
Func
Local  s,i
""»s
For  i,1,9
If  inString(str,string(i))=0
s&string(i)»s
EndFor
s
EndFunc

rempm(m)
Func
Local  m1,m2
m™»m1
seq(matÐlist(subMat(m,int((i-1)/3)*3+1,mod(i-1,3)*3+1,int((i-1)/3)*3+3,mod(i-1,3)*3+3)),i,1,9)»m2
seq(seq(when(m[i,j]="",nbposs(string(augment(augment(m[i],m1[j]),m2[int((j-1)/3)+1+int((i-1)/3)*3]))),m[i,j]),j,1,9),i,1,9)
EndFunc


Et deux matrices de test, la première est une facile, la deuxième un moyen :
0,9,0,0,7,0,0,1,5
0,0,1,0,3,5,6,0,0
5,0,7,4,0,2,0,3,0
0,5,0,0,8,0,0,0,6
7,0,0,1,0,0,3,8,9
3,0,0,0,2,6,1,0,0
0,7,8,0,0,3,0,4,0
0,0,5,0,4,0,2,0,7
4,0,2,0,6,0,8,9,0

0,0,8,3,7,0,5,0,0
1,5,0,0,8,9,0,0,0
9,0,7,5,0,0,0,0,1
0,0,0,0,0,4,0,2,0
0,2,0,6,9,0,0,0,4
8,0,0,0,2,3,0,0,0
3,0,1,0,4,0,9,5,0
0,0,0,0,0,6,0,0,7
5,0,2,0,0,7,1,4,0


Tout ça est dans le pack dont j'ai donné le lien au début !

Voilà, c'est surement pas ce qu'il y a de mieux, mais c'est un début smile
Si vous avez des remarques sur ma façon de m'y prendre, je les attends smile

15

Euh le mien en C met environ une demi seconde à une seconde .... J'ai donné le code à Mic (anoul) puisque je suis son "tuteur" grin

16

En C c'est clair que ca serait beaucoup beaucoup plus rapide.
Pour les tests que je fais, il faudrait à peine un quart de seconde, mais il manque pas mal de tests !

J'arrive pas à trouver comment faire une création de grille, quelqu'un à une idée, sachant qu'il faut qu'elle soit réalisable et qu'il y ai qu'une seule solution et qu'elle soit pas trop facile grin ?

17

18

Oui j'avais vu, mais mon problème est de savoir quelles cases je peux enlever en étant sur qu'il y ait toujours une seule solution smile

19

Uhm, héhé, on s'acharne ici smile C'est bon ça smile

Oui donc je suis sur le projet en C du Sudoku, sous la coupe de Thor smile

J'ai déjà mon petit cahier des charges de fait.

Vous pourrez voir je pense les premiers résultats durant les vacances de Noël.

J'annonce déjà qu'il y aura 4 niveaux de difficulté : Facile, Moyen, Difficile, Diabolique.

Je pense que le programme contiendra des grilles préintégrées car même si j'arrive à générer des grilles, c'est très très chaud à évaluer le niveau de difficulté.

Ensuite, j'aurais une petite question, comment vérifier que chacune des cases est remplie ??

Merci à bobti89, j'ai compris ton algorithme, ça va m'aider à transposer le C smile

Et merci à Thor aussi bien sûr !! !smile

20

Lol en fait si ya des grilles intégrées, on peut associer à chaque une matrice de solution qui contient la réponse et donc pas besoin d'algo de résolution gol

Uhm, donc les grilles préintégrées, ça sux.

Mais voilà si je veux faire plusieurs niveaux, c'est cahud, car l'algo de vérification d'un sudoku diabolique est extrêmement compliqué et complètement différent d'un sudoku normal donc c'est hyper tendu là.

21

Dites dites! Y'aurait un "tuteur" pour moi aussi !? grin trifaq

22

anoul
: Ensuite, j'aurais une petite question, comment vérifier que chacune des cases est remplie ??
Euh... Quand l'utilisateur a rentré un chiffre dans chacune des cases libres, non ?
Je ne vois pas du tout où est la difficulté trifus
avatar« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

23

Meusi sasume ça va taper dans de la reconnaissance de caractère ça trioui

24

Oui il faut un algo qui vérifie que chaque case n'est pas vide.

25

Bah tu fais un for (ou 2 tout dépend comment tu stoques tes données)
Je vois pas le problème confus .
avatarCombien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

26

son probleme se trouve entre l'heure et la date du post.

27

Son problème c'est... « anoul » ?
avatar

28

Sachant qu'il n'a jamais fait de C... trioui

29

Bah c'est pareil qu'en Basic là.
avatarCombien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

30

anoul :
Lol en fait si ya des grilles intégrées, on peut associer à chaque une matrice de solution qui contient la réponse et donc pas besoin d'algo de résolution gol

Uhm, donc les grilles préintégrées, ça sux.

Mais voilà si je veux faire plusieurs niveaux, c'est cahud, car l'algo de vérification d'un sudoku diabolique est extrêmement compliqué et complètement différent d'un sudoku normal donc c'est hyper tendu là.


Euh le solveur est bien mieux que d'enregistrer les solutions puisqu'il est nécessaire à la création de grilles wink (pour vérifier si elle est résolvable)

Dude :
Dites dites! Y'aurait un "tuteur" pour moi aussi !? grin trifaq


Pour quel projet?