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 » Tester plusieurs valeurs pour Getkey
Ninestars Hors ligne Membre Points: 2413 Défis: 22 Message

Tester plusieurs valeurs pour Getkey

Posté le 16/02/2013 23:54

Voici une petite astuce qui permet d'éviter des suites de conditions pour savoir si plusieurs touches ont été pressées :
While Prod ({A,B,C}!=Getkey)

WhileEnd

Avec A,B,C, ... le code de chaque touche

Ce code évite
While G!=A And G!=B And G!=C
Getkey->G

WhileEnd


Elle fait pas gagner grand chose, mais je la trouve plus "belle"


1, 2 Suivante
Dark storm Hors ligne Labélisateur Points: 11541 Défis: 176 Message

Citer : Posté le 17/02/2013 10:21 | #


Prod correspond à quoi ?
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

Citer : Posté le 17/02/2013 10:53 | #


Il calcul le produit de la liste en argument
Bonne astuce, je n'y avais pas pensé
Ninestars Hors ligne Membre Points: 2413 Défis: 22 Message

Citer : Posté le 17/02/2013 11:09 | #


Tu trouves Prod dans OPTN List F6 F6
Merci
Totoyo Hors ligne Membre d'honneur Points: 16040 Défis: 102 Message
Alex BasicC Hors ligne Ancien modérateur Points: 1734 Défis: 83 Message

Citer : Posté le 17/02/2013 12:34 | #


Très bonne astuce
Btl Hors ligne Ancien modérateur Points: 3879 Défis: 107 Message

Citer : Posté le 17/02/2013 16:33 | #


j'avoue que dans certains cas ça peut etre plutot utile et que je n'y avais jamais pensé
Un excellent tuto video qui vous explique comment transférer des fichiers de l'ordinateur vers la calculatrice et vice versa ma chaine youtube
mes jeux
mes jeux

Jouez à 6 sur une seule calto : Curve Fever
Un die and retry qui vous fera bieeeen rager Test Andropov
un très bon sokoban
le seul vrai jeu de foot en basic : FIFA 12
Ca c'est ce que j'appelle un jeu de reflexion jewel master
Qui vaincra l'intelligence artificielle de cet othello
Le célèbre pacman
Et tant d'autres BTL's games

Le jeu du mois de Novembre et award du jeu le plus dur de l'année 2013 MultiTask, testez-le
Totoyo Hors ligne Membre d'honneur Points: 16040 Défis: 102 Message
Ninestars Hors ligne Membre Points: 2413 Défis: 22 Message

Citer : Posté le 17/02/2013 19:06 | #


Oui ca marche.
Totoyo Hors ligne Membre d'honneur Points: 16040 Défis: 102 Message
Javierxd Hors ligne Membre Points: 1899 Défis: 13 Message

Citer : Posté le 17/02/2013 20:12 | #


On peut aussi en déduire que pour utiliser Or au lieu de And, on peut utiliser Sum:
Sum ({A,B,C}=Getkey)

serait l'équivalent de:
Getkey=A Or Getkey=B Or Getkey=C

Calculatrices: g35+usb modifiée, PRIZM

My program is not working, I have no idea why.
My program is working, I have no idea why.

Programmes
Cliquer pour enrouler
Ninestars Hors ligne Membre Points: 2413 Défis: 22 Message

Citer : Posté le 17/02/2013 20:20 | #


Oui d'un point de vue binaire, Sum c'est un OU et Prod un ET
On peut faire plein de choses avec quand on veut faire plein de conditions
Siapran Hors ligne Membre Points: 3248 Défis: 17 Message

Citer : Posté le 17/02/2013 20:45 | #


après est-ce que c'est forcément plus efficace niveau vitesse?
l'accès aux listes reste très lent par rapport aux variables normales
c'est une astuce intéressante, mais j'attends de voir l'efficacité niveau vitesse d'execution (oui je sais je suis très chiant )
Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

Citer : Posté le 19/02/2013 16:52 | #


Et bien testes par toi-même
Siapran Hors ligne Membre Points: 3248 Défis: 17 Message

Citer : Posté le 19/02/2013 21:46 | #


j'ai testé et le rapport de vitesse est d'environ 2/3
Dodormeur Hors ligne Ancien rédacteur Points: 3964 Défis: 82 Message

Citer : Posté le 19/02/2013 21:54 | #


donc l'astuce est plus rapide?
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Ninestars Hors ligne Membre Points: 2413 Défis: 22 Message

Citer : Posté le 20/02/2013 18:44 | #


Dans quel sens Siapran ?
Siapran Hors ligne Membre Points: 3248 Défis: 17 Message

Citer : Posté le 20/02/2013 19:24 | #


l'astuce est plus lente:

Ce code mets 4 secondes à s'executer
For 1->A To 1000
1=1 And 1=2 And 1=3 -> B
Next

Celui-ci en mets 6
For 1->A To 1000
Prod ({1,2,3}=1)-> B
Next

ça vient du fait que l'accès et la manipulation des listes est afreusement lente en basic...
Sinon niveau place, c'est du preil au même: les deux programmes font 64 octets...
Le seul avantage de cette astuce est de rendre le code plus lisible, mais honnêtement je préfère largement les performances à la lisibilité de mon code (surtout en basic --')
Ninestars Hors ligne Membre Points: 2413 Défis: 22 Message

Citer : Posté le 20/02/2013 19:49 | #


Ok, c'était sûr de toute façon
Après on peut optimiser un peu
For 1->A To 1000
Prod ({1,2,3})!=0->B
Next

Avec on passe à 5 secondes.
Mais je suis d'accord avec toi, c'est mieux de chercher la performance.
Siapran Hors ligne Membre Points: 3248 Défis: 17 Message

Citer : Posté le 20/02/2013 20:02 | #


sauf que là ton code ne teste pas pour chaque valeur de la liste mais seulement pour le produit de la liste...
Ninestars Hors ligne Membre Points: 2413 Défis: 22 Message

Citer : Posté le 20/02/2013 20:47 | #


Justement c'est ça l'optimisation ! On travail pas deux fois sur une liste mais une fois sur une liste puis une fois sur un nombre

Par contre l'ancien est faux, celui là est correct :
For 1->A To 1000
Prod ({1,2,3})=1->B
Next

Après il existe certaines combinaisons notamment avec les négatifs qui font bugger le code :/
1, 2 Suivante

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 - 2021 | Il y a 48 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