Forum

Catégorie : Programmes
Forum : Les programmes des internautes
Vues : 7118
Réponses : 41
Type : discussion
Etat : réponses autorisées

Sudoku - Page 1 / 3

Sangohan38 le 14/03/2007 à 15:01
Voici un jeu de sudoku.
Il ne génère pas les grilles mais, en choisis une (pour l'instant, il y en as 5) et choisis des nombres permettant ainsi de créer de nouvelles grilles.

Le -> est la touche [STO] au dessus de [ON]
[THETA] est le rond barré c'est à dire [ALPHA]+3
Le [DIFFERNET DE] indique la touche du égal barré c'est à dire [2nd]+[TEST]+2

Ce programme sera surement modifié dans les prochains jours donc, indiqués tous bug ou idées à propos de celui-ci.

Code
ClrDraw
0->Xmin
94->Xmax
0->Ymin
62->Ymax
GridOff
AxesOff
Horizontal 0
Horizontal 62
Vertical 0
Vertical 94
For(A,1,7
Text(10,A," SANGOHAN38
End
For(A,1,10
Text(A,53," PRESENTE:
End
For(A,1,35
Text(35,A," SUDOKU
End
Text(55,28,"VERSION 1.0
Pause
Lbl Z
Menu("SUDOKU","GRILLE FACILE",A,"GRILLE MOYENNE",B,"GRILLE DUR",C,"CONTINUER",D,"INSTRUCTIONS",E,"QUITTER",F
Lbl F
ClrHome
ClrDraw
Output(1,1,"    "
Stop
Lbl A
50->J
Goto 0
Lbl B
40->J
Goto 0
Lbl C
30->J
Goto 0
Lbl D
ClrDraw
1->Xmin
95->Xmax
1->Ymin
63->Ymax
RecallPic Pic1
Goto 4
Lbl E
0->Xmin
94->Xmax
0->Ymin
62->Ymax
Text(1,1,"LE BUT DE CE JEU EST DE
Text(8,1,"REMPLIRE LA GRILLE AVEC
Text(15,1,"LES CHIFFRES ALLANT DE
Text(22,1,"1 A 9 SANS QU IL Y EST
Text(29,1,"DEUX FOIS LE MEME CHIFFRE
Text(36,1,"SUR LA MEME LIGNE, COLONNE
Text(43,1,"OU LA MEME CELULE.
Pause
ClrDraw
Goto Z
Lbl 0
1->Xmin
95->Xmax
1->Ymin
63->Ymax
ClrDraw
int rand51->X
Text(24,6,"LIGNE:
Text(31,1,"COLONNE:
Line(26,62,90,62
Line(31,1,"COLONNE:
Line(36,62,90,62
Line(36,42,90,42
Line(36,22,90,22
Line(36,2,90,2
Line(36,62,36,2
Line(54,62,54,2
Line(72,62,72,2
Line(90,62,90,2
If X=1:8.29146537->A
If X=1:7.43285196->B
If X=1:6.15793284->C
If X=1:4.82517963->D
If X=1:1.56938742->E
If X=1:3.97624851->F
If X=1:5.31862479->G
If X=1:2.74359618->H
If X=1:9.68471325->I
If X=2:8.19365274->A
If X=2:7.45281963->B
If X=2:2.36974581->C
If X=2:4.21758639->D
If X=2:9.58643127->E
If X=2:3.67192458->F
If X=2:6.74539812->G
If X=2:1.93826745->H
If X=2:5.82417396->I
If X=3:1.57649832->A
If X=3:4.38572961->B
If X=3:2.96183547->C
If X=3:8.29437615->D
If X=3:3.15268479->E
If X=3:6.74915283->F
If X=3:7.82396154->G
If X=3:9.61854328->H
If X=3:5.43821796->I
If X=4:9.34165278->A
If X=4:7.61289354->B
If X=4:8.25437169->C
If X=4:2.96371485->D
If X=4:5.83924617->E
If X=4:1.47856932->F
If X=4:3.58692741->G
If X=4:6.12748593->H
If X=4:4.79513826->I
If X=5:2.89135476->A
If X=5:4.17629538->B
If X=5:6.35874192->C
If X=5:1.24587369->D
If X=5:8.53496721->E
If X=5:9.76312845->F
If X=5:5.48963217->G
If X=5:7.61248953->H
If X=5:3.92751684->I
1->X
38->Z
2->[THETA]
1->R
ClrList L1,L4
81->dim L1
81->dim L3
81->dim L4
Lbl 1
int A->L3(X
A-int A->A
10A->A
int B->L3(X+9
B-int B->B
10B->B
int C->L3(X+18
C-int C->C
10C->C
int D->L3(X+27
D-int D->D
10D->D
int E->L3(X+36
E-int E->E
10E->E
int F->L3(X+44
F-int F->F
10F->F
int G->L3(X+54
G-int G->G
10G->G
int H->L3(X+63
H-int H->H
10H->H
int I->L3(X+72
I-int I->I
10I->I
X+1->X
If A=0:Goto 2
Goto 1
Lbl 2
int rand81+1->C
If L3(C)=L1(C):Goto 2
L3(C)->L1(C
L3(C)->L4(C)
J-1->J
If J=0:Goto 3
5->V
5->W
41->A
Goto 2
Lbl 3
If L4(R)[DIFFERENT DE]0:Text([THETA],Z,L4(R
Z+5->Z
R+1->R
If R=4 or R=7 or R=13 or R=16 or R=22 or R=25 or R=31 or R=34 or R=40 or R=43 or R=49 or R=52 or R=58 or R=61 or R=67 or R=70 or R=76 or R=79:Z+3->Z
If R=28 or R=55:[THETA]+2->[THETA]
If R=10 or R=19 or R=28 or R=37 or R=46 or R=55 or R=64 or R=73:Then:[THETA]:38->Z
End
If R=82:Goto 4
Goto 3
Lbl 4
Text(24,28,W
Text(31,31,V
getkey->K
If K=24 and V-1>0:A-1->A
If K=26 and V+1<10:A+1->A
If K=24 and V-1>0:V-1->V
If K=26 and V+1<10:V+1->V
If K=25 and A-9>0:W-1->W
If K=34 and A+9<82:W+1->W
If K=34 and A+9<82:A+9->A
If K=25 and A-9>0:A-9->A
If K=105:Goto 6
If K=23:0->L1(A
If K=92:1->L1(A
If K=93:2->L1(A
If K=94:3->L1(A
If K=82:4->L1(A
If K=83:5->L1(A
If K=84:6->L1(A
If K=72:7->L1(A
If K=73:8->L1(A
If K=74:9->L1(A
If K=45:Goto G
If L4(A)[DIFFERENT DE]0:L4(A)->L1(A
If K[DIFFERENT DE]0:Goto 5
Goto 4
Lbl 5
If W=1:2->[THETA]
If W=2:8->[THETA]
If W=3:14->[THETA]
If W=4:22->[THETA]
If W=5:28->[THETA]
If W=6:34->[THETA]
If W=7:42->[THETA]
If W=8:48->[THETA]
If W=9:54->[THETA]
If V=1:38->Z
If V=2:43->Z
If V=3:48->Z
If V=4:56->Z
If V=5:61->Z
If V=6:66->Z
If V=7:74->Z
If V=8:79->Z
If V=9:84->Z
If L1(A)[DIFFERENT DE]0:Text([THETA],Z,L1(A
If L1(A)=0:Text([THETA],Z,"   "
Goto 4
Lbl G
StorePic Pic1
Menu("PAUSE:","CONTINUER",D,"INSTRUCTIONS",E,"QUITTER",F
Lbl 6
0->F
Lbl 7
StorePic Pic1
F+1->F
If F=82:Goto 9
If L1(F)=L3(F):Goto 7
ClrDraw
Text(25,10,"TA GRILLE A DES ERREURS.
Pause
Goto D
Lbl 9
ClrDraw
Text(25,15,"TA GRILLE EST JUSTE.
Pause
Goto Z


Sangohan38
mad67 le 14/03/2007 à 16:14
tu ne lupload pas sa m'arrangerais bcp
Sangohan38 le 15/03/2007 à 13:16
Je l'ai recopier à partir d'un ordi de mon lycée où les téléchargements sont interdis donc, il n'y aura pas de lien avant samedi.

Sangohan38
Stupid le 15/03/2007 à 13:43
les lois sont faites pour etre brisés...
Sangohan38 le 15/03/2007 à 16:00
Oui mais la, c'est vraiment pas possible.

Sangohan38
mad67 le 17/03/2007 à 17:09
Si il marche très bien je t'éli meilleur programmeur du site!!j'ai essayé d'en faire un j'ai pas réussi!!

Merci de mettre les accents pour que l'on comprenne ce que tu veut dire.
Sangohan38 le 17/03/2007 à 17:58
Non en fait, c'est basique mais il fallait y penser.
Pour le lien, faudra attendre car j'ai actuellement plus du tout de calculatrice.

Sangohan38
mad67 le 18/03/2007 à 18:37
fort et modeste en plus tu est bcp plus fort que ratuss car sudoku c dur a realiser
Sangohan38 le 19/03/2007 à 12:45
Le tout c'est de réflèchir.
Et puis, je n'aime pas être comparer à Ratuss car il à fait des choses que je n'ai pas fait.

Sangohan38

PS: Pas de langage SMS.
Jcotnys le 19/03/2007 à 16:38
bravo, jvé voir ce ke ca donne moi...
c normal les nombres décimaux qui définissent A, B, C etc...???
Sangohan38 le 19/03/2007 à 17:04
Oui, les nombres décimaux sont les différentes lignes de la grille.
Ainsi, on a 10 variables.

Sangohan38
mad67 le 19/03/2007 à 18:11
bravo quand meme tu peux m'expliquer comment tu as fait?
fab le 20/03/2007 à 19:09
coment on fais pour mettre Xmin Xmax sur la calculette
merci d'avance happy.gif
Deeph le 21/03/2007 à 13:27
Je te conseil d'utiliser la matrices pour ce genre de jeu. T'en prend deux, une qui est la solution, et une qui servira au joueur. Ensuite tu compare les deux et voilà (et faudrai mieu que tu évite les boucles avec des 'Goto' et des labels...).
Sangohan38 le 21/03/2007 à 17:52
Je sais pas si tu as vu, mais j'"utilise des listes ce qui prend bien moins de place.
J'utilise 3 listes: 1 qui sert à générer la grille, une où on as la grille mais avec les trous et la 3ème que l'on utilise.
Pour la vérification, on utilise la 3ème et la 1ère.

Sangohan38
Deeph le 21/03/2007 à 18:58
Avec des matrices c'est plus simple et surtout ça alégerai ton programme (même si tu perds un peu de place avec les matrices, puis ça t'éviterai d'utiliser toutes ces variables).
BELET01 le 21/03/2007 à 22:04
C'est clair que les matrices arrangent tout. J'ai fait à peu de choses près ce prog mais avec des matrices (il ya quelques bugs mais c'est un peu galère donc j'lai laisser comme sa!)


Ps: je vous enverais le code source bientôt... godgrace.gif
Sangohan38 le 23/03/2007 à 13:01
Deeph, tu te rend compte de ce que tu vient de dire?

D'abord:

Citation
Je te conseil d'utiliser la matrices pour ce genre de jeu. T'en prend deux, une qui est la solution, et une qui servira au joueur. Ensuite tu compare les deux et voilà (et faudrai mieu que tu évite les boucles avec des 'Goto' et des labels...).


Et après:

Citation
Avec des listes c'est plus simple et surtout ça alégerai ton programme (même si tu perds un peu de place avec les matrices, puis ça t'éviterais d'utiliser toutes ces variables).


Si j'utlise les listes, c'est pour allégé la mémoire car si je fait deux matrice de 9*9, cela prendrait environ 5000 octets de mémoire alors que 3 listes en prennent à peine 1000.

Enfin, BELET01, ça m'étonnerais que tu l'ai fait car pour le faire, il faut une bonne connaissance en prog.
Poste donc un programme pour que nous puissions jugé de ta capacitée à créer.
Et puis le language SMS n'est pas autorisé.

Sangohan38
Deeph le 23/03/2007 à 18:30
J'me suis juste trompé entre matrice/liste.
Sangohan38 le 23/03/2007 à 21:13
Dans lequel de message?

Sangohan38