Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
Sudoku
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 bcpSangohan38 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.
Sangohan38Stupid 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.
Sangohan38mad67 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.
Sangohan38mad67 le 18/03/2007 à 18:37
fort et modeste en plus tu est bcp plus fort que ratuss car sudoku c dur a realiserSangohan38 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.
Sangohan38mad67 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

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.
Sangohan38Deeph 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 matrice
s arrang
ent t
out.
J'ai fait à peu
de chose
s près ce prog
mais av
ec des matrice
s (il ya
quelques bugs m
ais c
'est un peu galère
donc
j'lai laisser comme sa!)
Ps:
je vou
s enver
ais le code source b
ientôt...

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?
Sangohan38Deeph le 23/03/2007 à 21:22
Citation
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).
(J'ai édité le message)
Sangohan38 le 23/03/2007 à 23:26
Une matrice prend bien plus de place qu'une liste.
En plus, l'utilisée est plus long qu'uiliser une liste.
Sangohan38Deeph le 23/03/2007 à 23:29
Citation
En plus, l'utilisée est plus long qu'uiliser une liste.
C'est faux, c'est pas plus long (et c'est bien plus simple d'utilisation, surtout si tu cherche à faire un générateur de grille).
Sangohan38 le 24/03/2007 à 10:55
Et bien, pour utiliser une case de la matrix, il faut faire par exemple:
Alors que pour une liste dont ont sait exactement la coresspondance des lignes on a:
Ce qui fait un octet de gagner par instruction utilisant les listes donc, cela allège le programme.
Sangohan38
Deeph le 24/03/2007 à 18:24
Comme ça oui, tu vas gagner un peu de place, mais à long terme non.Sangohan38 le 24/03/2007 à 18:25
Si on en gagne à court terme, alors à long terme aussi ont en gagne.
Sangohan38Deeph le 24/03/2007 à 18:34
Mais non, les matrices qui répresentent mieu une grille de sudoku qu'une liste. Si tu fait des fonctions avancées, genre afficher la matrice par une boucle avec une variable pour les colones et une autre pour les lignes, tu iras plus vite qu'avec une liste. Mais bon, fait ton sudoku comme tu veux, c'est juste un conseil...Sangohan38 le 24/03/2007 à 18:36
Une liste avec une seule boucle.
C'est plus simple à faire et comme je l'ai déja dit, ça prend moins de place.
Sangohan38mad67 le 02/04/2007 à 17:52
sango le lien stp!!Sangohan38 le 02/04/2007 à 18:01
Mon jeux ne marche plus.
Je vais donc le recréer.
Ainsi, pas de lien avant 2 semaines.
Sangohan38mad67 le 03/04/2007 à 08:08
bon courage!!Jcotnys le 08/04/2007 à 18:15
reslt dsl pour l'absence
sango, ton prog en première page marche ou pa ???

FulliZing le 08/04/2007 à 18:48
je crois qu'il a dit non, son prog ne fonctionne plus
++Sangohan38 le 08/04/2007 à 19:46
Il semble ne pas fonctionner, mais je l'ai recopier donc théoriquement, il marche.
Sangohan38vibra le 16/04/2007 à 16:52
Désolé mais, à première vue, je crois que Deeph à raison. D'une part une matrice 9*9 coûte 737 octet, alors qu'une liste de81 termes prend...737 octet !! Ca prend la même place ! Or une matrice est un outil mathématique plus maniable, et plus appropriée à un sudoku. De plus seulement 2 matrices suffisent.
Mais j'avoue que je n'ai pas vraiement étudié le sujet, et les matrices posenent finalement des problèmes d'utilisation. Je suis en vacances, je vais essaye de me pencher sur le sujet.Sangohan38 le 17/04/2007 à 13:02
Comme je l'ai dit plus haut, utiliser une matrcez prend plus d'octets qu'une liste.
Ensuite, même si elle est plus adaptée qu'une liste, pour l'utiliser, il faut deux boucles avec au moins 2 variables alors qu pour une liste, une seule boucle suffit.
C'est vrai que j'utilise 3 listes mais même avec des matrice dans mon cas, on aurait aussi trois matrice.
Sangohan38vibra le 17/04/2007 à 13:18
J'arrive pas à comprendre pourquoi tu dit qu'une matrice utilise plus d'espace q'une liste. J'ai obtenu 737 octets pour les deux !!

Sangohan38 le 17/04/2007 à 13:21
Sur mon ancienne calcu, je peut t'assurer que j'arrivait à des matrices à 900 octets alors qu'une liste en prennait 700.
Mais le test que je vien de faire à mis 740 pour les deux...
Sangohan38vibra le 17/04/2007 à 13:23
Tu avais dû te tromper dans les dimentions de le liste.vibra le 17/04/2007 à 13:23
Heuu, de la matrice pardon.Sangohan38 le 17/04/2007 à 13:27
Non, c'était bien du 9*9.
Sangohan38vibra le 17/04/2007 à 13:29
bizare

Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.