Poster un nouveau sujet Poster une réponse
[JEUX] KillPi
Auteur Message
xou816



Autorisation : Membre
Nb de messages : 1
Inscrit le : Dim 11 Sep 2011, 14:30
Posté le : Dim 11 Sep 2011, 14:47   Citer 

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

 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Dim 11 Sep 2011, 19:11   Citer 

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


EffVar TEffEcr  //1 octé
Goto 12
Lbl 80
EffEcr
Disp "TIME OUT:"       //second guillemet inutile
Output(4,7,K
Output(4,1,"KILLS:"       //second guillemet inutile
Output(3,12,Q
Output(3,1,"TIME LIMIT:"       //second guillemet inutile
Pause
Goto 0
Lbl 81
EffEcr
Disp "YOUR SCORE:"       //second guillemet inutile
Output(1,12,K
If K>=L1(5):Output(3,1,"NEW HIGHSCORE"       //second guillemet inutile
Pause
Lbl 82
EffEcr
Output(1,1,"HIGHSCORES:"       //second guillemet inutile
1+dim(L1->F    //1octé
K->L1(F    //1octé
TriDécroi(L1)
F->dim(L1)   /1 octé
2->M
Repeat M=7
M+1->M
Output(M,1,L1(M-2)
Output(M,4,"KILLS"       //second guillemet inutile
End
Pause
Goto 0
Lbl 99
EffEcr
Output(1,1,"



Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Xou816
Invité
Posté le : Ven 16 Sep 2011, 5:49   Citer 

Merci pour ta réponse! Je testerais à l'occasion, je ne connaissais pas ces techniques.

  Haut de page Bas de page 
 
LooLiLooL
Invité
Posté le : Mer 21 Sep 2011, 19:14   Citer 

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 ? happy.gif

  Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mer 21 Sep 2011, 19:22   Citer 

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
 Adresse email Haut de page Bas de page 
 
Etsuko
Invité
Posté le : Dim 25 Sep 2011, 14:25   Citer 

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

  Haut de page Bas de page 
 
Etsuko
Invité
Posté le : Dim 25 Sep 2011, 14:27   Citer 

Oh, excusez moi, c'est "erreur domaine" que ça me met, pas "erreur syntaxe"... désolée...

  Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Dim 25 Sep 2011, 15:01   Citer 

Reessye et quand tu optient l'erreur, fait 1 (pour quitter) puis relève les valeurs de X et de Y (tu fait X [enter] puis Y [enter] )

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Etsuko
Invité
Posté le : Lun 26 Sep 2011, 13:20   Citer 

Ok !
Y = 3 et X = 10

  Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Lun 26 Sep 2011, 20:09   Citer 

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
 Adresse email Haut de page Bas de page 
 
Etsuko
Invité
Posté le : Lun 26 Sep 2011, 21:07   Citer 

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.

  Haut de page Bas de page 
 
Etsuko
Invité
Posté le : Lun 26 Sep 2011, 21:16   Citer 

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

Désolée pour les doubles-post...

  Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mar 27 Sep 2011, 18:32   Citer 

crazy.gif Il ne devrait y avoir acun problème tant que X et Y sont des entiers compris entre 1 et respectivement 16 et 8.

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Etsuko
Invité
Posté le : Jeu 29 Sep 2011, 13:52   Citer 

Bon, bah, c'est pas grave alors... C'est pas comme si c'était très important de toute façon. happy.gif

  Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Page générée en 6 requêtes