Forum

Catégorie : Programmes
Forum : Les programmes des internautes
Vues : 4306
Réponses : 27
Type : discussion
Etat : réponses autorisées

Bowling

Persalteas le 29/05/2010 à 23:12
ce prog n'est pas de moi, mais celui qui l'a fait l'a fait beaucoup trop lourd.
je l'ai donc simplifié.


lBOW signifie liste "BOW" donc le l se trouve en faisant [2nde] [stats] [>] [^] [enter]


Code

:2->dim(lBOW
:2->M:0->C
:EffListe L1,L3
:12->dim(L1
:Remplir(99,L1
:23->dim(L3
:10->L3(21
:10->L3(23
:11->L3(22
:Lbl N
:Menu("----BOWLING-----","JEU",1,"QUIT",H
:Lbl 1
:Input "VITESSE? (1a5) ",N
:If 1>N ou N>5:Goto 1
:N->I
:If N=1:22->N
:If N=2:17->N
:If N=3:12->N
:If N=4:7->N
:If N=5:1->N
:9->L
:Lbl D
:EffEcr
:EffListe L2
:10->dim(L2
:1->H
:1->R
:For(A,1,8
:Output(A,3,"!"
:Output(A,13,"!"
:End
:If non(L2(1:Output(4,8,"O"
:If non(L2(2:Output(3,7,"O"
:If non(L2(3:Output(3,9,"O"
:If non(L2(4:Output(2,6,"O"
:If non(L2(5:Output(2,8,"O"
:If non(L2(6:Output(2,10,"O"
:If non(L2(7:Output(1,5,"O"
:If non(L2(8:Output(1,7,"O"
:If non(L2(9:Output(1,9,"O"
:If non(L2(10:Output(1,11,"O"
:Lbl A
:For(D,12,4,-1
:Output(8,D,"O"
:Output(8,D+1," "
:Output(8,13,"!"
:Output(8,4," "
:For(E,1,N):End
:If codetouche=105:Goto B
:End
:Goto A
:Lbl B
:C+1->C
:Output(8,D," "
:For(E,7,1,-1
:Output(E,D,"O"
:Output(E+1,D," "
:Output(E,D-1," "
:Output(E,D+1," "
:If D=8:Then
:Output(E,D+2," "
:Output(E,D-2," "
:Output(E,D+3," "
:Output(E,D-3," "
:Remplir(1,L2
:End
:If D=7:Then
:Output(4,8,"O"
:1->L2(2:1->L2(4:1->L2(5
:1->L2(7:1->L2(8:1->L2(9
:End
:If D=9:Then
:Output(4,8,"O"
:1->L2(3:1->L2(6:1->L2(5
:1->L2(8:1->L2(10:1->L2(9
:End
:If D6:Then
:Output(3,7,"O"
:1->L2(7:1->L2(8:1->L2(4
:End
:If D=10:Then
:Output(3,9,"O"
:1->L2(6:1->L2(10:1->L2(9
:End
:If D=5:Then
:Output(2,6,"O"
:1->L2(7
:End
:If D=11:Then
:Output(2,10,"O"
:1->L2(10)
:End
:If D=4:Then
:Output(G,3,"!"
:Output(1,5,"O"
:End
:If D=12:Then
:Output(G,13,"!"
:Output(1,11,"O"
:End
:End
:Output(1,D," "
:If D=7 ou D=9:Then
:Output(1,D-2," "
:Output(1,D+2," "
:End
:0->O
:For(E,1,10
:L2(E)+O->O
:End
:Goto P
:Lbl Q
:If H=2:C-1->C
:If H=2:Goto G
:If D=8:Then
:EffEcr
:Output(4,5,"STRIKE!"
:Pause:EffEcr
:11->O
:Goto J
:End
:H+1->H
:Goto A
:Lbl G
:If O=10:Then
:EffEcr
:Output(4,6,"SPARE!"
:Pause:EffEcr
:End
:Lbl J
:O->L1(C)
:
:Disp "    -SCORES- ","----------------"," 1! 2! 3! 4! 5!","  !  !  !  !  !"," 6! 7! 8! 9! 10!","  !  !  !  !   !"
:Output(8,1,"----------------"
:4->B
:Lbl J2
:0->K
:For(F,2,15,3
:If R=10:F+1->F
:If L1(R)=11:Output(B,F,"X"
:If L1(R)=10:Output(B,F,"/"
:If L1(R)<10:Output(B,F,L1(R)
:R+1->R
:If R=11:Goto Z
:End
:If C>5 et B=4:Then
:7->B:2->K
:End
:If K=2:Goto J2
:Lbl Z
:Pause
:If C=10:Goto R
:Goto D
:Lbl P
:If H=1:Then
:O->L3(2C-1)
:11->L3(2C)
:End
:If H=2
:O-L3(2C-1)->L3(2C)
:Goto Q
:Lbl R
:EffEcr
:For(E,1,19,2
:Output(4,4,"PROCESSING"
:Output(5,6,"SCORE"
:If L3(E)=10 et L3(E+2)=10
:10+L3(E+4)+P->P
:If L3(E)=10 et L3(E+2)=/=10
:L3(E+2)+P+L3(E+3)->P
:If L3(E)+L3(E+1)=10
:L3(E+2)+P->P
:If L3(E)=/=10:Then
:L3(E)+L3(E+1)+P->P
:Else
:10+P->P
:End
:End
:EffEcr
:Output(4,4,"TOTAL "
:Output(4,10,P
:Pause:EffEcr
:Lbl S
:EffEcr
:Disp "YOU SCORED...","ON SPEED..."
:Output(1,14,P
:Output(2,12,I
:Pause:EffEcr
:Disp "THE OLD RECORD","IS...","ON SPEED..."
:Output(2,6,lBOW(1
:Output(4,12,lBOW(2
:Pause:EffEcr
:If PI>lBOW(1)*lBOW(2):Then
:P->lBOW(1
:I->lBOW(2
:Disp "YOU BROKE THE","RECORD AND","YOUR NEW RECORD","IS...","",ON SPEED..."
:Output(5,6,P
:Output(7,12,I
:Pause:EffEcr
:Goto N
:End
:EffEcr
:Output(4,4,"TRY AGAIN"
:Pause:EffEcr
:Menu("PLAY AGAIN ?","YES",N,"NO",H
:Lbl H
:EffListe L1,L2,L3
:EffVar AEffVar BEffVar CEffVar DEffVar EEffVar FEffVar HEffVar IEffVar J
:EffVar KEffVar LEffVar NEffVar PEffVar REffVar MEffVar O
Persalteas le 29/05/2010 à 23:13
certes, on peut encore le simplifier, mais avant il faisait 5 Ko, maintenant il en fait 2.5.

je n'ai pas tout compris dans le comptage des points, mais le jeu fonctionne, c'est le principal.
Mika le 16/09/2012 à 22:01
Bonjour
Voila je possède une calculette ti 82 stars fr noir.
Je voulais quelque renseignement sur comment faire la lettre "l" avant BOW malgrer pas mal de recherche je ne trouve pas le "l" sur ma calculette et jai fais la manipulation Ke vous proposer mais cela n'aboutie pas Allor pourriez vous mexpliquer plus en détail la manipulation a effectuer svp
J'ai écrit tout le programme sur ma calculette et c la seul erreur de syntaxe qui me bloque pou réussir et exécuter le programme de se jeux
Merci davance pour votre compréhension et j'attends votre Reponse au plus vite
m@thieu41 le 16/09/2012 à 22:50
Bonsoir!
Va dans Liste (2nd+stats)
Fleche de droite, fleche du haut et tu y es ^^
rickie le 17/09/2012 à 19:54
Bonjour, j'ai une TI82 Stats.fr noire et je ne sais pas comment faire le "a" de "(1a5)".
Merci d'avance !
linkakro le 17/09/2012 à 19:57
Met le A majuscule ou le a du menu var>stat, c'est seulement du texte à cet endoit.
Mika le 18/09/2012 à 21:17
Bonsoir
Merci Mathieu pour la manip c super sympa
Mika le 18/09/2012 à 21:32
Bonsoir je revient embêter un peu tongue.gif
Voila kan je lance le programme il me mais erreur syntaxe au niveau de la première ligne et il me montre se signe la ">" et kan je le suprime il me mais erreur indéfini tj sur la première ligne a la fin de lBOW (je n'ai pas de chance xP)
Voila voila
Je demande votre aide en toute gratitude et vous remerci d' avance
Keralis le 18/09/2012 à 21:38
salut je n'arrive pas a mettre le * dans un programme, je mets le fois mais il me dis erreur
merci.
blg_flg le 18/09/2012 à 21:42
Pour le ">": le signe "->" est sto (au dessus de on).
tapenad le 19/09/2012 à 14:03
@keralis: l'etoile c'est le bouton de la multiplication
Mika le 19/09/2012 à 14:27
Bonjour
Voila je voulai vous remercier pour votre aider
Et vous inciter a confier votre forum et vraiment super
Merci encore
Rickie le 19/09/2012 à 18:20
Personnellement ça bugue quand il y a un "=/="
Que dois-je faire ?
Merci d'avance happy.gif
Sangohan38 le 19/09/2012 à 18:31
Ces touches représentent le symbole [différent de] que tu trouvera dans le menu TEST (touches 2nd puis MATH).

Sangohan38
eArnoow le 19/09/2012 à 20:04
xD les mecs vous avez suivi un tuto ou pas ?
The K le 19/09/2012 à 21:36
Justement tout le monde ne le fait pas.

Est-ce que tu lis madame Bovary en entier quand seul une page t'intéresse pour un texte en français ?

Non ^^ et la c'est le même principe.
Rickie le 19/09/2012 à 21:51
Personnellement non, j'apprends sur le tas tongue.gif
Qu'est-ce qu'une erreur de domaine ?
linkakro le 19/09/2012 à 22:00
Une valeur fausse mène à une opération impossible.
Par exemple diviser par zéro est impossibleau même titre que d'afficher du texte en dehors de l'écran.
D'où une erreur de domaine.

EDIT: par la suite Le Grec m'a signalé une erreur : diviser par zéro provoque une erreur DIV PAR 0 ...
L'exemple serait plus judicieux en disant racine carré de -1 (dans les réels...) ou log(-1)
eArnoow le 19/09/2012 à 22:09
Oui c'est ce que j'ai fait pour les listes, chaînes et en gros toute la partie 2 du tutoriel de lanfeust, et quand j'ai eu besoin il y a quelques jours, j'ai lu.
Mais quand même, sto, multiplier et différent de, il faut lire les bases winkle.gif
Rickie le 22/09/2012 à 15:56
linkakro a écrit :
Une valeur fausse mène à une opération impossible.
Par exemple diviser par zéro est impossibleau même titre que d'afficher du texte en dehors de l'écran.
D'où une erreur de domaine.

Et bien ma calculette en affiche une quand j'envoie la boule près du bord, là où il n'y a pas de quilles...
Ça arrête la partie, donc c'est assez énervant happy.gif
Aidez- moi, merci happy.gif
blg_flg le 22/09/2012 à 16:01
linkakro a écrit :
Par exemple diviser par zéro est impossibleau même titre que d'afficher du texte en dehors de l'écran.
D'où une erreur de domaine.

Diviser par 0 provoque une erreur "DIV PAR 0".
Rickie le 22/09/2012 à 16:03
Aussi, j'ai trouvé un système de meilleur score plus judicieux :
Au lieu de mettre ":If PI>lBOW(1)*lBOW(2):Then"
Il faut mettre : "If P/I>lBOW(1)/lBOW(2):Then"
Car plus le niveau est bas, plus il est difficile donc multiplier n'est pas très judicieux happy.gif
eArnoow le 22/09/2012 à 16:07
Mais la multiplication est plus rapide que la division (et prend peut-être moins de place, à confirmer)
The K le 23/09/2012 à 19:43
Cela prend des fois moins de place, et des fois plus (bien que ce soit plus rare).

Exemple : .001A sera plus optimisé que A/1000

(le meilleur étant bien entendu : AE-3)
eArnoow le 23/09/2012 à 19:48
Oui, mais le E n'est pas utilisable lors des divisions par nombre autre qu'une puissance de 10, ou alors ce n'est guère plus utile.
Donc en puissance de 10 :
AE-3 = A/1000

Autre
.2A=A/5
The K le 23/09/2012 à 19:50
Ben si ça permet de gagner 2 octets.

Dis donc ça tu vas pas me la faire hein ... godgrace.gif
andy-35 le 24/10/2012 à 18:35
bonjour,

pour le bowling j'ai un souci, le jeu fonctionne mais lorsque que je met la boule dans la goutiere j'ai une erreur domaine qui s'affiche et qui me mene a cette ligne :
output(G,13,"!"

pourtant j'ai taper exactement comme dans le forum.
merci d'avance
blg_flg le 24/10/2012 à 20:02
Vérifie les lignes avec "quelque chose -> G" et supprime le dernier guillemet, inutile. winkle.gif