Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Mer 14 Mar 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
Autorisation : Membre
Nb de messages : 40
Inscrit le : Mar 29 Aoû 2006, 23:20
Posté le : Mer 21 Mar 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...).
Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Mer 21 Mar 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.
Autorisation : Membre
Nb de messages : 40
Inscrit le : Mar 29 Aoû 2006, 23:20
Posté le : Mer 21 Mar 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).
C'est clair que les matrices arrangent tout. J'ai fait à peu de chosesprès ce prog mais avec des matrices (il ya quelques bugs mais c'estun peu galère donc j'lailaissercomme sa!)
Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Ven 23 Mar 2007, 13:01
Deeph, tu te rend compte de ce que tu vient de dire?
D'abord:
Citer
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:
Citer
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é.