Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Vos tutoriels et astuces


Index du Forum » Vos tutoriels et astuces » Transformer le Getkey en nombre
Pie3636 Hors ligne Membre Points: 310 Défis: 24 Message

Transformer le Getkey en nombre

Posté le 06/03/2011 16:29

Je voudrais faire part d'une astuce trouvée par un de mes amis pour transformer le Getkey en nombre (merci Christophe).
La formule
G-82/-10->A
donne le nombre 1, 2 ou 3 dans la variable A si on tape 1, 2 ou 3 (G représente le getkey). Ayant trouvé ceci, il a trouvé une formule qui marche pour les nombres de 1 à 9 :
G/-10+31Frac(G/10)+2->A

ou
(G-31MOD(G,10))/-10+2

ou encore
RndFix(((G-((Int(G/10))*10+1))*3-(Abs(52-G)/10)),0)->A

Ou encore, merci Drak, dans sa version la plus optimisée à ce jour :
-.1G+2+31Frac (.1G→A


Cette formule a un inconvénient : Le 0 est placé de telle manière qu'on ne peut pas l'intégrer. Avec un booléen, on résout facilement le problème :
(G≠71)(-.1G+2+31Frac (.1G→A



Getkey vers caractères alphabétiques

Merci à Drakalex pour la formule.

Aujourd'hui, pendant une heure peu intéressante de cours je me suis amusé à essayer de créer une formule permettant, grâce à la valeur GetKey pressée, de retourner un chiffre de 1 à 26 correspondant à la lettre pressée.
Et c'est chose réussie !

Voici le code "brut" pour ceux que ça intéresse :

Getkey[b]->[/b]G
(6-Frac (G/10)*10)(5+(Frac (G/10)*10>=[maroon]4[/maroon]))+8-Int G/10[b]->[/b]L


Et le code en plus clair (A correspond aux chiffres des dizaines de Getkey et B aux chiffre des unités)

Getkey[b]->[/b]G

Int G/10[b]->[/b]A
Frac (G/10)*10[b]->[/b]B

(6-B)(5+(B>=[maroon]4[/maroon]))+8-A[b]->[/b]L


Dans les deux cas, L correspond à la position dans l'alphabet de la lettre pressée. Si vous voulez récupérer directement la lettre et non le chiffre, il suffit d'exécuter un code comme ceci :

[gray]"ABCDEFGHIJKLMNOPQRSTUVWXYZ"[/gray][b]->[/b]Str [maroon]1[/maroon]

Getkey[b]->[/b]G

Int G/10[b]->[/b]A
Frac (G/10)*10[b]->[/b]B

(6-B)(5+(B>=[maroon]4[/maroon]))+8-A[b]->[/b]L
[b][brown]Locate[/brown][/b] [maroon]1[/maroon],[maroon]1[/maroon],StrRight(StrLeft(Srt [maroon]1[/maroon],L),[maroon]1[/maroon])


Je ne sais pas si une formule de la sorte existe déjà, mais je suis fier de vous faire partager ma découverte qui peut s'avérer utile pour plusieurs programmes !


Drak Hors ligne Rédacteur Points: 1925 Défis: 40 Message

Citer : Posté le 04/07/2018 21:50 | #


une formule qui marche pour les nombres de 1 à 9 :
G/-10+31Frac(G/10)+2→A

Je propose une formule optimisée. C'est la même, mais en moins d'octets :
-.1G + 2 + 31Frac (.1G → A


Pour la suite :
Cette formule a un inconvénient : Le 0 est placé de telle manière qu'on ne peut pas l'intégrer. La formule finale (de 0 à 9) est donc :
MOD(Z,10)²-2MOD(Z,10)+1-2Int(.2MOD(Z,10)²-.4MOD(Z,10)+.2)+Abs(Int(Z/10)-7)->A

Bouah, pourquoi pondre une usine à gaz juste pour un zéro ? Faites plus simple, les amis ! Un booléen !
(G ≠ 71)(-.1G + 2 + 31Frac (.1G → A


Voila. C'est tout !

Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !
Un RPG unique et immense t'attend ! Joue dès maintenant à Aventura, le Royaume Poudingue !
Vous aussi, soyez swag et rejoignez Planète Casio !
Dark storm En ligne Labélisateur Points: 11566 Défis: 176 Message

Citer : Posté le 06/07/2018 18:12 | #


Joli, je mets à jour

Excellent le coup du booléen, dès fois faut savoir revenir aux basiques
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Drak Hors ligne Rédacteur Points: 1925 Défis: 40 Message

Citer : Posté le 06/07/2018 18:27 | #


Merci beaucoup, Dark storm
Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !
Un RPG unique et immense t'attend ! Joue dès maintenant à Aventura, le Royaume Poudingue !
Vous aussi, soyez swag et rejoignez Planète Casio !

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 v42 © créé par Neuronix et Muelsaco 2004 - 2022 | Il y a 69 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