Poster un nouveau sujet Poster une réponse
Label valeur ....
Auteur Message
Chwood
Invité
Posté le : Mer 17 Déc 2008, 10:19   Citer 

Bonjour,
Je suis sur un projet de pendu ... malheureusement comme vous le savez sûrement, les commandes "If ... then" etc ... utilisent beaucoup de mémoire et provoquent à la longue beaucoup d'erreurs de ce nom.
Donc pour régler ça j'ai eu envie d'utiliser les étiquettes en faisant un truc de ce genre (en simplifié ici bien sûr ^^):

Code

:90->x
...
:X+1->X
:Goto X
...
...
...
:lbl X
...
...



Mais ce que je veux c'est que ça renvoi à la valeur de X (ici 91) et non à l'étiquette nommée X (qui n'existe pas soit dit en passant).
Est-ce possible ou non ?

Merci d'avance pour vos réponses*

Chwood eyeonly.gif

  Haut de page Bas de page 
 
coc5
Avatar

Autorisation : Membre
Nb de messages : 879
Inscrit le : Sam 16 Jui 2007, 13:37
Posté le : Mer 17 Déc 2008, 12:52   Citer 

J'avais eu la même idée que toi il y a longtemps, et l'expérience m'a dit que non, hélas, X est toujours prise comme une étiquette "X".
Mais je ne vois pas en quoi tu peux avoir besoin de cela pour faire un pendu...

 Adresse email Haut de page Bas de page 
 
Chwood
Invité
Posté le : Mer 17 Déc 2008, 13:57   Citer 

Je suis pas un pro en codage donc je fais sûrement des trucs plus longs que nécessaire pour contourner ces lacunes, dans le cas présent, c'est pour éviter des "If ...Else" ... je te montre les morceaux de codes avec et sans les If (dans mon intention ^^) et si tu as des idée pour améliorer (ce qui ne doit pas être dur) n'hésites pas laugh.gif

Quelques indications avant quand même pour la compréhension^^:

-Chaine1 est la lettre qu'à rentré le joueur
-Toutes les autres chaines ont une lettre du mot choisis aléatoirement au paravents par la calculatrice ou un (alfa)
- =! est le signe "différent de" (je sais pas comment on le fait ici donc wala ^^)


Code
:If chaîne1 != chaîne2 et chaine1 != chaine3 et chaine1 != chaine4 et chaine1 != chaine5 et chaine1 != chaine6 et chaine1 != chaine7 et chaine1 != chaine8 et chaine1 != chaine9 et chaine1 != chaine0
:then
:p+1->p
:Goto 99
:Else
:...
             autres avec plein de if encore répété pour chaque lettres dans le modèle suivant:

:If chaine1 = chaine2
:then : 1->I
:goto 50
:lbl 50
:If chaine1 = chaine3
:then : 1->J
:goto51
     ...etc...

           Et donc le truc pour lequel je voulais l'étiquette X c'est pour ça:

:lbl 99
:If p=1
:then
:output(8,3,"---------
:goto 10
:else
:If p=2
:then
:output(2,3,"!
             !
             !
             !
             !
           ---------
:goto 10


              et ce 9 fois ... donc wala !!  si il y avais eut ce à quoi je pensais faire ça :


:90->p
:...
:If chaîne1 != chaîne2 et chaine1 != chaine3 et chaine1 != chaine4 et chaine1 != chaine5 et chaine1 != chaine6 et chaine1 != chaine7 et chaine1 != chaine8 et chaine1 != chaine9 et chaine1 != chaine0
:then
:p+1->p
:goto p

            et ensuite:

:lbl 91
::output(8,3,"---------
:goto 10
:lbl 92
:output(2,3,"!
             !
             !
             !
             !
           ---------
:goto 10

           .... ce qui à mon gout est beaucoup mieux  :'( 




Donc voila happy.gif merci quand même pour ta réponse ... laugh.gif

  Haut de page Bas de page 
 
mad67



Autorisation : Membre
Nb de messages : 613
Inscrit le : Sam 23 Jui 2007, 14:05
Posté le : Mer 17 Déc 2008, 17:02   Citer 

essaie avec des parenthèses peut être...

 Adresse email Haut de page Bas de page 
 
coc5
Avatar

Autorisation : Membre
Nb de messages : 879
Inscrit le : Sam 16 Jui 2007, 13:37
Posté le : Mer 17 Déc 2008, 20:33   Citer 

C'est vrai qu'il y a pas mal de choses à simplifier.
Déjà, évite d'utiliser toutes les chaînes, une seule suffit pour stocker le mot.
A l'aide de sous-chaîne() tu peux ensuite parcourir le mot pour voir si la lettre entrée y est.
Pour l'affichage du pendu également, évite de tout réécrire à chaque fois, fais plutôt dans ce genre-là:


Code
If P<2:Output(8,3,"--------
If P<3:Then
For(I,2,7
Output(I,6,"!
End:End
If P<4:Output(3,7,"/

Etc...



Je t'invite vivement à regarder le code de mon Pendu ici.


Ps: Mad, le Ti-Basic est un langage assez souple, mais il ne faut pas exagérer! Ca ne marche pas non ^^

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





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