Poster un nouveau sujet Poster une réponse Page: 1, ,      >>
High Score
Auteur Message
Panache



Autorisation : Membre
Nb de messages : 36
Inscrit le : Sam 18 Sep 2010, 11:47
Posté le : Mer 15 Sep 2010, 7:22   Citer 

Alors je m'explique au début d'un programme que j'ai créé j'ai décidé de mettre le high score.
Je met donc OUTPUT(X,Y,"HIGH SCORE") :OUTPUT (X,Y,lLISTE(1))
Et à la fin de mon programme : P->lLISTE
Seulement au premier lancé de mon programme il y a une erreur car la liste n'as pas encore été créée...
Comment faire ?

 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 853
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Mer 15 Sep 2010, 10:34   Citer 

Tu marques {1}->dim(lLISTE au début du programme.
Le "l" c'est le petit L pour les listes,je sais pas comment tu as fait une barre verticale.

Edit: Avant P->lLISTE n'oublie pas de mettre If P>lLISTE(1

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 15 Sep 2010, 15:52   Citer 

Tu dois enlever les accolades ! Elles signifient que le contenu est une liste. OR la dimension (de la liste) n'est pas une liste.
Tu confonds peut-être le remplissage direct et le dimensionnement.
=>la partie de ton édit est inutile car le dimmensionnement conserve le contenu.
(sous réserve que ma stat-fr diffère des autres...)

-----
Autre méthode de traîtement : dans le menu stats>édit, balade toi au maximum à droite. Si une liste existe déjà, elle n'apparaît pas forcément déjà. Dans l'entête de titre (en sortant par la droite), tu dois trouver des pointillés à compléter : cela affichera ou créera une liste portant ce nom.
Une fois l'affichage ou la création effectué, tu peux manipuler le contenu aisément.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mer 15 Sep 2010, 16:22   Citer 

très juste.

 Adresse email Haut de page Bas de page 
 
Panache



Autorisation : Membre
Nb de messages : 36
Inscrit le : Sam 18 Sep 2010, 11:47
Posté le : Mer 15 Sep 2010, 18:42   Citer 

Rezus a mieux compris mon pb bigmouth.gif
Et il l'a réglé cupsmiley.gif
Cependant linkabro tu as raison sur le fait qu'il faut supprimer les accolades ^^
Mais son edit est utile car sinon ce n'es plus le high score mais le last score xD
Merci a vous minied.gif

 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 853
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Mer 15 Sep 2010, 19:24   Citer 

Tiens dans ton pif !! godgrace.gif glasses.gif
Mais c'est vrai que j'aurais dû me rendre compte pour les crochets ^^

 Adresse email Haut de page Bas de page 
 
Panache



Autorisation : Membre
Nb de messages : 36
Inscrit le : Sam 18 Sep 2010, 11:47
Posté le : Mer 15 Sep 2010, 19:43   Citer 

Maintenant j'ai un autre problème ^^'
Mais pas sur le même programme :
Je m'explique je fais un programme simple qui représente une machine a sous et pour faire joli, j'ai mis la poignée que l'on doit abaisser pour jouer...
L'animation ressemble à ça :

o o
! o o !
! ! O ! !

Mais je ne veut pas appuyer sur Enter pour faire avancer l'animation comment faire pour que cela l'automatise ?
Merci d'avance,
Panache

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Rézus



Autorisation : Membre
Nb de messages : 853
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Mer 15 Sep 2010, 19:50   Citer 

ça dépend de ton animation,là on vioit pas bien,faudrait que tu nous la dessine étape par étape,parce que selon le mouvement,on peu avoir soit un truc très long et lourd,soit un algorithme beaucoup plus court.
Le plus simple c'est de faire afficher à la calto les images unes par unes avec des 69! entre chaque image (a la place des pause quoi,ça ralentit la calculette mais elle continu à afficher les images sans que t'appuis sur entrer) enfin je pourrais t'expliquer mieux si tu fais ce que j'ai demandé.

 Adresse email Haut de page Bas de page 
 
Panache



Autorisation : Membre
Nb de messages : 36
Inscrit le : Sam 18 Sep 2010, 11:47
Posté le : Mer 15 Sep 2010, 21:01   Citer 

Ah oui le résultat est moche xD je me suis pas relu dsl
Donc sa passe de :

o
!
!

A :

o
!

Puis a :

O

et la manivelle remonte tu vois ce que je veux dire ?
(le O est plus gros sur le dernier pour donner un effet de perspective ^^)
Voila mais que font les 69! exactement ?

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 15 Sep 2010, 21:19   Citer 

69! est la factorielle 69, un très grand nombre. Ecrire ceci sert à ralentir la calculatrice car c'est une opération lourde.
Personnellement je préfère utiliser des boucles For (plus efficace), mais je pense que ce cas précis justifie les 69! (moins de caractères, et ici on a pas besoin de beaucoup)

ps: désolé pour tout-à-l'heure, j'ai confondu le début et la fin crazy.gif

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 853
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Mer 15 Sep 2010, 22:01   Citer 

Oui,en fait en math quand tu as un nombre n suivi d'un ! ça veut dire qu'on multiplie tous les entiers naturels entre eux jusqu'à n. Par exemple 4!=1*2*3*4=24
Quand la calculatrice doit le faire jusque 69 ça lui prend du temps (du genre 1/5ème de seconde),donc en attendant elle ne fait rien,autrement dit ça ralentit ses actions.
Tu peux aussi le faire avec une boucle "For(" vide,c'est plus précis mais ça prend plus de place qu'un 69! seul.
Tu peux même mettre les deux si tu as beaucoup de 69! à mettre enfin l'idée c'est de ralentir la calculatrice,marquer 1+1 sur 100 lignes ça marcherait aussi mais bon...
Donc là tu as 2 solutions: soit tu mets tes outputs avec des 69! à chaque fois (c'est le plus simple mais ça prend plus d'octets).
Soit tu mets:


Code
:Lbl B
:Output(Y+1,X,"!
:Output(Y+2,X,"!
:0->A:2->B:1->¤
:For(Y,A,B,¤
:If ¤=1
:Output(Y,X,"     1 espace
:If ¤<0
:Output(Y,X,"!
:If Y=2
:Output(Y,X,"O
:Output(Y,X,"[taille=10]O[/taille]
:69!
:69!
:69!
:End
:If ¤<0
:Goto B
:-1->¤:A->B:Y->A
:69!
:69!
:69!
:Goto A
:Lbl B



J'ai mis X pour les coordonnées de la boule en X quand elle est à sa position la plus haute,et Y pour les coordonnées en Y de la boule quand elle est à sa plus haute position,et ¤ c'est le theta.
Bien sur tu peux mettre les variables que tu veux,je connais pas ton programme donc j'ai mis celles-là au hasard.
Idem pour le nombre de 69!,c'est a toi de le règler en fonction de ce qui t'arranges.
Bon ,je sais pas si c'est plus court que de mettre tous les Outputs mais au moins ça te feras un bon exercice.
Si quelque chose va pas,dit le,je suis pas en forme aujourd'hui j'ai peut-être fait des erreurs.

 Adresse email Haut de page Bas de page 
 
Panache



Autorisation : Membre
Nb de messages : 36
Inscrit le : Sam 18 Sep 2010, 11:47
Posté le : Mer 15 Sep 2010, 22:48   Citer 

Eh bien non tu n'as pas fait d'erreur bigmouth.gif
J'ai tout compris et j'ai essayé avec les 69! et ça marche nickel !
Et puisque tu es en forme, une autre question =D
J'ai mis des variables O,P et Q pour les roulottes et elles vont de 1 à 9
J'ai donc mis par la suite :


Code

If O=P et P=Q et O=Q
Then
X+100->X
Output(8,12,"+100

If O=P ou O=Q ou P=Q
Then
X+5->X
Output(8,12,"+5                                                                                                     

If O!=P et P!=Q et O!=Q
Then
X-5->X
Output(8,12,"PERDU



Le problème apparait quand je fais les 3 chiffres pareils, au lieu de m'afficher comme je l'ai écris "+100" il m'affiche le "+5" ...
En fait je pense que ceci est parce que dans la première condition il y a aussi la deuxième
voili voilou
Panache

 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 853
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Mer 15 Sep 2010, 23:07   Citer 

Tu as juste oublié de mettre un End ou un Else entre Output(8,12,"+100 et If O=P ou O=Q ou P=Q.
Et idem pour les deux autres.

Code
:If O=P et P=Q et O=Q
:Then
:X+100->X
:Output(8,12,"+100
[couleur=#FF0000]:End[/couleur]
:If O=P ou O=Q ou P=Q
:Then
:X+5->X
:Output(8,12,"+5                                                                [couleur=#FF0000]:End [/couleur]                                   
:If O!=P et P!=Q et O!=Q
:Then
:X-5->X
:Output(8,12,"PERDU
[couleur=#FF0000]:End[/couleur] celui-là n'est pas obligatoire si ton prog se termine là.



 Adresse email Haut de page Bas de page 
 
Panache



Autorisation : Membre
Nb de messages : 36
Inscrit le : Sam 18 Sep 2010, 11:47
Posté le : Jeu 16 Sep 2010, 6:48   Citer 

Mdr nan en fait je les ai oublier das le code mais ils étaient bien présent sur ma calto crazy.gif
Donc le problème vient d'autre part...

 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 853
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Jeu 16 Sep 2010, 8:42   Citer 

Ah ben il faut que tu mettes un "Goto" juste avant chaque End et un "Lbl" juste avant le dernier If,parce que si t'as O=P et P=Q et O=Q,ben forcément t'as O=P ou O=Q ou P=Q,en fait tes deux premiers If reviennent à un seul qui serait comme ça:


Code
:If O=P ou P=Q ou O=Q
:Then
:X+105->X
:Output(8,12,"+5
:End



Au lieu de mettre des Goto,tu pourrais essayer de remplacer les "ou" du deuxième If par des "ouExcl",je l'ai jamais fait mais en toute logique ça doit marcher.

 Adresse email Haut de page Bas de page 
 
Panache



Autorisation : Membre
Nb de messages : 36
Inscrit le : Sam 18 Sep 2010, 11:47
Posté le : Jeu 16 Sep 2010, 18:06   Citer 

Oui mais je trouve bizarre que cela affiche +5 mais que ça ajoute quand même 100 à l'argent...

 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 853
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Jeu 16 Sep 2010, 18:13   Citer 

ça rajoutes 105 à l'argent parce que les conditions sont remplies pour qu'il ajoute 100 et qu'il ajoute 5,donc il fait les deux,et il affiche +100 mais tout de suite après il affiche +5,ça va très vite donc si t'y fais pas attention tu le verras pas.
D'ailleurs si je raisonnes bien,si tu enlève les deux espaces que tu as mis après ton +5,il affichera +500.

 Adresse email Haut de page Bas de page 
 
Panache



Autorisation : Membre
Nb de messages : 36
Inscrit le : Sam 18 Sep 2010, 11:47
Posté le : Jeu 16 Sep 2010, 19:34   Citer 

AAAAAHHHH OKIII bigmouth.gif
J'ai compris ^^
Mais mon programme étant déjà un peu lourd je vais éviter de mettre encore une fois des Lbl et des Goto
Et j'ai trouvé une solution ^^
Je met les "ou" en premier et je met les "et" en premier comme cela s'affichera +100 ^^
Mais comme cela fera 105 et ba je fait X+95->X
laugh.gif
Bon merci beacoup =)
Ce type de programme nous amène à un autre problème c'est que j'ai mis un Goto quand X=0 mais il n'y a pas de "plafond" donc tant que l'on ne perd pas le jeu tourne à l'infini
J'ai donc choisit de pouvoir quitter le jeu à n'importe quel moment avec un getkey (ou codetouche) pour sauvegarder ses gains.
Et la c'est le drame !
Mon getkey ne marche pas =/
Ai-je fais une erreur ?


Code
:codeTouche->G
:If G=45              <= C'est la touche "annul"
:Then
:Goto L
:End



Voila ^^
Je sais je suis chiant crazy.gif

 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 853
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Jeu 16 Sep 2010, 20:13   Citer 

Il n'y as pas d'erreur,mais il faut que ton codetouche et les instructions qui vont avec soient dans une boucle (si possible au tout début,moi je le mets tout le temps sur la première ou deuxième ligne de la boucle).Par convention on utilise K pour le codetouche.
Et j'ai oublié de te dire,quand tu n'as qu'une instruction après un If,tu peux enlever le Then et le End,ça économise des octets et ça évite à ton programme de ralentir ou de marquer erreur mémoire.
Là tu peux le faire.

 Adresse email Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Jeu 16 Sep 2010, 20:47   Citer 

C'est exactement ça Rézus.
Juste que c'est toi qui dit que c'est la convention le K pour Getkey. Et aussi, ça ne change pas grand chose de mettre l'instruction au début ou à la fin vu que la vitesse d'exécution est grande.

Sangohan38

 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse Page: 1, ,      >>





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink