Autorisation : Membre
Nb de messages : 1
Inscrit le : Dim 11 Sep 2011, 14:30
Posté le : Dim 11 Sep 2011, 14:47
Bonjour à tous!
J'entre cette année en classe de seconde et je découvre les joies des calculatrices scientifiques. Du coup, j'accepte mieux d'avoir payé ma petite TI82 Stats.fr si cher! C'est devenu ma nouvelle console de jeu.
Je m’intéresse depuis quelques temps au langages de programmation et autre (PHP, C...) et quand j'ai découvert des "If", des "Else" et des "While" en tout genre, je me suis mis à coder frénétiquement...
Je vais vous présenter un petit programme de débutant que j'ai réalisé après avoir lu quelques tutos sur le net. Ce n'est pas mon premier programme mais c'est celui que je préfère.
Le voici! Le but est de "tuer" le nombre PI, d'où le nom KillPi. Je l'ai fait an anglais sans raison particulières. Ah si, pour l'anecdote, je voulais centrer le mot "PAUSE" quand le jeu est en pause, mais ayant un nombre de lettres impair, je ne pouvais pas le centrer. Donc c'est devenu "PAUSED"...
Assez parlé! Voilà la bête. (j'utilise le symbole pi au lieu de "PI" sur ma TI)
-> STO
<= INFERIEUR OU EGAL
>= SUPERIEUR OU EGAL
ENTER pour mettre en pause le jeu
Code
Lbl 0
EffEcr
500->N
0->Q
-1->K
8->X:8->A
4->Y:4->B
Lbl 1
Menu("KILLPI","PLAY",11,"PRACTISE",10,"HIGHSCORES",82,"QUIT",99
Lbl 10
Input "TIME LIMIT:",Q
Pause
EffEcr
Q->N
Lbl 11
K+1->K
entAléat(1,16->C
entAléat(1,7->D
Lbl 12
Repeat T=105
N-1->N
Output(D,C, "PI"
Output(B,A," "
Output(Y,X,"{}"
X->A:Y->B
codeTouche->T
X-(T=24)+(T=26)->X
Y-(T=25)+(T=34)->Y
If X=0:1->X
If X=16:15->X
If Y=0:1->Y
If Y=8:7->Y
If (C=X ou C=X+1) et D=Y:Goto 11
If Q=0
Then
If N=0:Goto 81
Else
If N<=0:Goto 80
End
Output(8,7,K
Output(8,1,"KILLS:"
Output(8,14," "
If N<100 et N>10:Output(8,15,N
If N>100:Output(8,14,N
If N<10:Output(8,16,N
End
Lbl 13
EffEcr
Repeat T=105
codeTouche->T
Output(4,6,"PAUSED"
Output(8,7,K
Output(8,1,"KILLS:"
End
0->T
EffEcr
Goto 12
Lbl 80
EffEcr
Disp "TIME OUT:"
Output(4,7,K
Output(4,1,"KILLS:"
Output(3,12,Q
Output(3,1,"TIME LIMIT:"
Pause
Goto 0
Lbl 81
EffEcr
Disp "YOUR SCORE:"
Output(1,12,K
If K>=L1(5):Output(3,1,"NEW HIGHSCORE"
Pause
Lbl 82
EffEcr
Output(1,1,"HIGHSCORES:"
dim(L1)+1->F
K->L1(F)
TriDécroi(L1)
F->dim(L1)
2->M
Repeat M=7
M+1->M
Output(M,1,L1(M-2)
Output(M,4,"KILLS"
End
Pause
Goto 0
Lbl 99
EffEcr
Output(1,1,"
Voilà! Je précise que pour l'utilisation du "joystick" j'ai utilisé l'exemple du site du zéro.
Ce qu'il me reste à faire: nom des joueurs pour les meilleurs scores, quitter en cours de partie via le menu "PAUSE".
I have nothing more to say. I just hope you'll enjoy my game! =D
Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Dim 11 Sep 2011, 19:11
Je ne suis pas trop joueur, mais voici quelques amméliorations:
Code
Lbl 0
EffEcr
500->N
EffVar Q-1->K //1 octé de moins ici
8->X:8->A
4->Y:4->B
Lbl 1
Menu("KILLPI","PLAY",11,"PRACTISE",10,"HIGHSCORES",82,"QUIT",99
Lbl 10
Input "TIME LIMIT:",Q
Pause
EffEcr
Q->N
Lbl 11
K+1->K
entAléat(1,16->C
entAléat(1,7->D
Lbl 12
Repeat T=105
N-1->N
Output(D,C, "PI" //second guillemet inutile
Output(B,A," " //second guillemet inutile
Output(Y,X,"{}" //second guillemet inutile
X->A:Y->B
codeTouche->T
X-(T=24)+(T=26)->X
Y-(T=25)+(T=34)->Y
If non(X:1->X // non(X equivaut à X=0
If X=16:15->X
If non(Y:1->Y // non(X equivaut à Y=0
If Y=8:7->Y
If D=Y et (C=X ou C=X+1:Goto 11 //inversion de l'ordre pour suprimer une parrenthèse
If non(Q // non(X equivaut à Q=0
Then
If non(N:Goto 81 // non(X equivaut à N=0
Else
If N<=0:Goto 80
End
Output(8,7,K
Output(8,1,"KILLS:" //second guillemet inutile
Output(8,14," " //second guillemet inutile mais à afficher pour le
reconnaitre l'espace
NON : If N<100 et N>10:Output(8,15,N
NON : If N>100:Output(8,14,N
NON : If N<10:Output(8,16,N
Output(8,18-ent(log(N)),N //à la place des 3 lignes commençant par NON (ne
marche pas si N=1. sinon dans les 3 lignes auddessus, tu oublie le 10 et le 100)
End
Lbl 13
EffEcr
NON : Repeat T=105
NON : codeTouche->T
Output(4,6,"PAUSED"
Output(8,7,K
Output(8,1,"KILLS:"
NON : End
Pause // à la place des 3 lignes commençant par NON
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes
Xou816 Invité
Posté le : Ven 16 Sep 2011, 5:49
Merci pour ta réponse! Je testerais à l'occasion, je ne connaissais pas ces techniques.
LooLiLooL Invité
Posté le : Mer 21 Sep 2011, 19:14
bonjour, J'ai bien tous fait, mais la calculatrice m'indique une erreur au niveau du 99
Menu("KILLPI","PLAY",11,"PRACTISE",10,"HIGHSCORES",82,"QUIT",99
J'aimerais savoir pourquoi ?
Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mer 21 Sep 2011, 19:22
Vérifie que tu n'a pas fait d'erreures sur cette ligne (guillemets, mauvaise virgule (c'est celle au-dessus du 7 qu'il faut)) et sur l'avant-avant dernière ligne (Lbl 99).
Si ça ne marche toujours pas, POSTE LE NOM DE L'ERREUR AFFICHEE (fait le toujour quand un programme bug et tu demande pourquoi, ça implifie énomément la tache.
Sandro
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes
Etsuko Invité
Posté le : Dim 25 Sep 2011, 14:25
Bonjour
J'ai entré le programme sur ma calculatrice, tout va bien, je commence à jouer, et à un moment, ça m'indique "Erreur Syntaxe" et quand je fais "voir" ça me montre le passage :
Output(Y,X,"{}"
X->A:Y->B
Pourtant, j'ai tout vérifié...
Pourriez-vous me dire ce qu'il se passe ?
Je viens de découvrir le programmes des calculatrice, je trouve ça génial, même si je ne comprend pas grand chose...
Etsuko Invité
Posté le : Dim 25 Sep 2011, 14:27
Oh, excusez moi, c'est "erreur domaine" que ça me met, pas "erreur syntaxe"... désolée...
Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Lun 26 Sep 2011, 20:09
Tu as bien utilisé les guillemets et non les apastrophes?
Tu as bien utilisé la touche [sto->] et non "moins" suvit de "strictement supérieur" ?
Tu as bien utilisé la virgule audessus du 7 et nom celle pour les nombres décimaux?
Sandro
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes
Etsuko Invité
Posté le : Lun 26 Sep 2011, 21:07
Oui, enfin, la virgule, j'ai utilisé celle dans le catalogue, parce que je savais pas qu'on pouvais prendre celle du 7, mais je suppose que c'est la même... Je peux toujours changer...
Je vous redis ce que ça donne.
Etsuko Invité
Posté le : Lun 26 Sep 2011, 21:16
Non, ça ne change rien...
Par contre, les valeur de X et Y changent, X est toujours égal à 9 ou 10, mais Y varie entre 1, 3, 5 et 6...