Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » Affichage de valeur à différents endroit sur l'écran


shyan31 Invité

Affichage de valeur à différents endroit sur l'écran

Posté le 21/02/2014 12:53

Bonjour, J'ai un petit morceau de code dans mon programme qui me pose problème. J'aimerai que lorsque l'utilisateur appuis sur une touche de 1 à 9, que cette valeur s'affiche à un endroit particulier sur l'écran. Pour l'instant jusqu'à là il n'y a pas de soucis.

Par contre, après j'aurai aimé que l'utilisateur rentre 3 nombres à des endroits différents et que pour passer d'un endroit à l'autre il suffirait d'appuyer sur la touche "EXE".

J'ai essayé de plusieurs façon différentes mais rien n'y fait, ça ne fonctionne pas à l'arrivée.
Donc si quelqu'un pourrait m'aider ce serait vraiment gentil !

Voici le code à modifier.
Lbl 1
Getkey→Z
10→Y
Z=71⇒0→Y
Z=72⇒1→Y
Z=62⇒2→Y
Z=52⇒3→Y
Z=73⇒4→Y
Z=63⇒5→Y
Z=53⇒6→Y
Z=74⇒7→Y
Z=64⇒8→Y
Z=54⇒9→Y

If Z=44
Then 0→A~W
Text 47,21,"..."
IfEnd

If Y≠10
Then W=0⇒Y→A
W=1⇒10A+Y→A
W=2⇒10A+Y→A
A≥10 Or E=0⇒Text 41,27,A
A<10 And E=1⇒Text 41,31,A
W+1→W
IfEnd
Goto 1



Totoyo Hors ligne Membre d'honneur Points: 16102 Défis: 102 Message

Citer : Posté le 21/02/2014 13:43 | #


Salut,

Ce code marche, mais peut-être que tu cherches un autre résultat. A toi de voir

44->Z //sinon les trois points ne s'affichent au lancement du programme
Do
If Z=44
Then 0→A~W
Text 47,21,"..."
IfEnd
Do
Do
Getkey→Z
LpWhile Z=0 //pour avoir un Getkey très sensible
10→Y
Z=71⇒0→Y
Z=72⇒1→Y
Z=62⇒2→Y
Z=52⇒3→Y
Z=73⇒4→Y
Z=63⇒5→Y
Z=53⇒6→Y
Z=74⇒7→Y
Z=64⇒8→Y
Z=54⇒9→Y
LpWhile Y=10 //Si Y=10, alors la touche pressée n'est pas bonne (ou vaut 44 [DEL])
If W=0
Then Y->A
Else 10A+Y->A
IfEnd
Text 47,21,A
//Je n'ai pas compris l'utilité des conditions (A<= 10 And E=0), donc je te laisse adapter le code
Isz W // équivalent de W+1->W
IfEnd
LpWhile W<3



shyan31 Invité

Citer : Posté le 24/02/2014 14:23 | #


J'ai vraiment pas eu le temps de repasser avant, désolé.
Le code que tu as proposé est finalement le même que le mien à quelque détails près. J'avais fait quelque erreur dans mon code en recopiant, sans doute dû au fait que je devais partir très rapidement.
Pour les instructions (A≥10 Or E=0 ) il s'agissait en fait de l'instruction (A≥10 Or W=0). Je pense que ça devrait te sembler plus clair maintenant.
En gros ça me permet d'afficher correctement sur les points de la position 1 le chiffre correspondant à la touche appuyée.

J'ai du mal m'exprimer, car ce n'était pas le résultat attendu. Je vais essayer d'expliquer un peu mieux.
__________________
| | En simplifiant au maximum, on peut schématiser la situation
| 2 | avec ce tableau. Avec 1, 2 , et 3 les emplacements des
| 1 3 | 3 valeurs que doit rentrer l'utilisateur. Pour passer du 1 au 2,
|_________________| puis du 2 au 3, il faut obligatoirement appuyer sur la touche EXE.

J'aimerai repartir de ce code pour le modifier :


Do
Do
If Z=44
Then 0→A~W
Text 41,27,"..."
IfEnd
Getkey→Z
10→Y
Z=71⇒0→Y
Z=72⇒1→Y
Z=62⇒2→Y
Z=52⇒3→Y
Z=73⇒4→Y
Z=63⇒5→Y
Z=53⇒6→Y
Z=74⇒7→Y
Z=64⇒8→Y
Z=54⇒9→Y
LpWhile Y=10
W=0⇒Y→A
W=1⇒10A+Y→A
W=2⇒10A+Y→A
A≥10 Or W=0⇒Text 41,27,A
A<10 And W=1⇒Text 41,31,A
Isz W
LpWhile 1

L'initialisation de Z au début n'est pas utile puisque les points sont déjà affiché par d'autres instructions. Et la sensibilité du Getkey n'est pas vraiment importante dans ce contexte.
J'avais pensé à rajouter un incrémentation d'un variable (par exemple D) à chaque appuie sur la touche EXE, et de rajouter des If (si D=1 utiliser les instruction pour la position 1; si D=2 utiliser celle de la position 2 ... ect). En faisant comme ça j'abouti à un résultat satisfaisant pour les positions 2 et 3 mais pas pour la première. Je ne comprends pas pourquoi. D'autant plus que ça me parait lourd comme solution. Il doit exister plus simple je pense.
J'aimerai pour la position 1 : Text 41,27,A
Pour la position 2 : Text 27,104,B
Pour la position 3 : Text 34,10,C


shyan31 Invité

Citer : Posté le 24/02/2014 14:30 | #


Erf mon petit schéma est mal passé. Je reprends donc.

En simplifiant au maximum, on peut schématiser la situation avec cette image (supposons que ceci est l'écran de la calculatrice), avec 1, 2 , et 3 les emplacements des 3 valeurs que doit rentrer l'utilisateur. Pour passer du 1 au 2, puis du 2 au 3, il faut obligatoirement appuyer sur la touche EXE.



P.S : Désolé pour le double post.


shyan31 Invité

Citer : Posté le 27/02/2014 15:50 | #


Personnes pour m'aider ?
Lephenixnoir Hors ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 27/02/2014 16:46 | #


Le code que je te propose n'est qu'un exemple, mais a priori il fonctionne.
While 1 //pour que cela continue à l'infini
Cls
Text 41,27,A◢
Cls
Text 27,104,B◢
Cls
Text 34,10,C◢
WhileEnd


Enfin ça c'est bon tant que tu n'as pas trop de positions.
Après si tu ne veux effacer l'écran il suffit d'enlever les "Cls"
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 250 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd