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
|
|
|
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 ?
|
|
|
|
Rézus
Autorisation : Membre
Nb de messages : 853
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Mer 15 Sep 2010, 10:34
|
|
|
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
|
|
|
|
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
|
|
|
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 |
|
|
|
Persalteas
Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
|
Posté le : Mer 15 Sep 2010, 16:22
|
|
|
très juste.
|
|
|
|
Panache
Autorisation : Membre
Nb de messages : 36
Inscrit le : Sam 18 Sep 2010, 11:47
|
Posté le : Mer 15 Sep 2010, 18:42
|
|
|
Rezus a mieux compris mon pb
Et il l'a réglé
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
|
|
|
|
Rézus
Autorisation : Membre
Nb de messages : 853
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Mer 15 Sep 2010, 19:24
|
|
|
Tiens dans ton pif !!
Mais c'est vrai que j'aurais dû me rendre compte pour les crochets ^^
|
|
|
|
Panache
Autorisation : Membre
Nb de messages : 36
Inscrit le : Sam 18 Sep 2010, 11:47
|
Posté le : Mer 15 Sep 2010, 19:43
|
|
|
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
|
|
|
|
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
|
|
|
ç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é.
|
|
|
|
Panache
Autorisation : Membre
Nb de messages : 36
Inscrit le : Sam 18 Sep 2010, 11:47
|
Posté le : Mer 15 Sep 2010, 21:01
|
|
|
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 ?
|
|
|
|
linkakro
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Mer 15 Sep 2010, 21:19
|
|
|
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
---------------------- 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 |
|
|
|
Rézus
Autorisation : Membre
Nb de messages : 853
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Mer 15 Sep 2010, 22:01
|
|
|
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.
|
|
|
|
Panache
Autorisation : Membre
Nb de messages : 36
Inscrit le : Sam 18 Sep 2010, 11:47
|
Posté le : Mer 15 Sep 2010, 22:48
|
|
|
Eh bien non tu n'as pas fait d'erreur
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
|
|
|
|
Rézus
Autorisation : Membre
Nb de messages : 853
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Mer 15 Sep 2010, 23:07
|
|
|
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à. |
|
|
|
|
Panache
Autorisation : Membre
Nb de messages : 36
Inscrit le : Sam 18 Sep 2010, 11:47
|
Posté le : Jeu 16 Sep 2010, 6:48
|
|
|
Mdr nan en fait je les ai oublier das le code mais ils étaient bien présent sur ma calto
Donc le problème vient d'autre part...
|
|
|
|
Rézus
Autorisation : Membre
Nb de messages : 853
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Jeu 16 Sep 2010, 8:42
|
|
|
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.
|
|
|
|
Panache
Autorisation : Membre
Nb de messages : 36
Inscrit le : Sam 18 Sep 2010, 11:47
|
Posté le : Jeu 16 Sep 2010, 18:06
|
|
|
Oui mais je trouve bizarre que cela affiche +5 mais que ça ajoute quand même 100 à l'argent...
|
|
|
|
Rézus
Autorisation : Membre
Nb de messages : 853
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Jeu 16 Sep 2010, 18:13
|
|
|
ç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.
|
|
|
|
Panache
Autorisation : Membre
Nb de messages : 36
Inscrit le : Sam 18 Sep 2010, 11:47
|
Posté le : Jeu 16 Sep 2010, 19:34
|
|
|
AAAAAHHHH OKIII
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
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
|
|
|
|
Rézus
Autorisation : Membre
Nb de messages : 853
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Jeu 16 Sep 2010, 20:13
|
|
|
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.
|
|
|
|
Sangohan38
Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Jeu 16 Sep 2010, 20:47
|
|
|
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
|
|
|
|