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 [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