[Axiome] Le getKey le plus optimisé !
+3
maxence
nikitouzz
kindermoumoute
7 participants
Page 1 sur 1
[Axiome] Le getKey le plus optimisé !
Je me permet de faire brièvement la présentation de l'axiome SPEEDKEY. Cet axiome permet de détecter les touches du pavé directionnel de manière très optimisé.
Je dis "brievement" pour la bonne raison que cet axiome est le plus petit jamais conçu (et utile), il ajoute la commande getDir ([Zoom] [3]).
Pour l'utiliser, rien de plus simple ; il vous faut d'abords télécharger l'axiome, le mettre sur votre calculatrice, et taper ceci en début de programme :
Pour rappel la commande #Axiom( se trouve dans le catalog à la lettre A. Voici un exemple de programme tout simple qui montre bien l'efficacité de cet axiome :
Aaah, mais ce ne sont pas les mêmes codes touche qui s'affichent ?
Pour le coté technique, la touche du bas correspond au bit 1, la touche de gauche au bit 2, la touche de droite au bit 3 et la touche du haut au bit 4. Donc vous aurez déjà deviné les combinaisons de bases :
Seulement on peut faire encore mieux et détecter les diagonales tout simplement en additionnant les bits :
Toutes les autre combinaisons/touches vallent zéro.
C'est valable pour toutes les autres touches du clavier, et lorsqu'on fait Haut et Bas en même temps par exemple. Pour les intéressé c'est juste un Haut xor Bas et Droite xor Gauche.
Je dis "brievement" pour la bonne raison que cet axiome est le plus petit jamais conçu (et utile), il ajoute la commande getDir ([Zoom] [3]).
Pour l'utiliser, rien de plus simple ; il vous faut d'abords télécharger l'axiome, le mettre sur votre calculatrice, et taper ceci en début de programme :
- Code:
:#Axiom(SPEEDKEY)
Pour rappel la commande #Axiom( se trouve dans le catalog à la lettre A. Voici un exemple de programme tout simple qui montre bien l'efficacité de cet axiome :
- Code:
:.A
:#Axiom(SPEEDKEY)
:
:While 1
:Disp getDir>Dec,i
:EndIf getKey(15)
Aaah, mais ce ne sont pas les mêmes codes touche qui s'affichent ?
Pour le coté technique, la touche du bas correspond au bit 1, la touche de gauche au bit 2, la touche de droite au bit 3 et la touche du haut au bit 4. Donc vous aurez déjà deviné les combinaisons de bases :
- Bas : 1
- Gauche : 2
- Droite : 4
- Haut : 8
Seulement on peut faire encore mieux et détecter les diagonales tout simplement en additionnant les bits :
- Bas+Gauche : 3
- Gauche+Haut : 10
- Haut+Droite : 12
- Droite+Bas : 5
Toutes les autre combinaisons/touches vallent zéro.
C'est valable pour toutes les autres touches du clavier, et lorsqu'on fait Haut et Bas en même temps par exemple. Pour les intéressé c'est juste un Haut xor Bas et Droite xor Gauche.
kindermoumoute- Or 4
- Sexe :
Age : 30
Messages : 797
Date d'inscription : 07/10/2010
Points Forum : 21
Points Concours : 1
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-83+
Re: [Axiome] Le getKey le plus optimisé !
:D tu l'a fait toi meme cette axiom ? je n'ai pas compris en quoi il pouvais etre utile dans un programme ?
nikitouzz- Platinum 1
- Sexe :
Age : 28
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Re: [Axiome] Le getKey le plus optimisé !
Il est utile dans certains cas, mais c'est assez rare.
Par exemple, tu veux que quand tu appui sur les touches "bas" et "gauche", une action particulière se fasse.
En temps normal tu aurais écrit "if getkey(1) and (getkey(2))... actionRéalisée"
Et bien la tu peux faire "if getkey(3)...actionRéalisée", car la somme des getkey des deux touches fait 3.
Bon après c'est sur qu'il n'y a pas beaucoup de cas ou tu en a besoin mais bon, ça sert toujours.
Par exemple, tu veux que quand tu appui sur les touches "bas" et "gauche", une action particulière se fasse.
En temps normal tu aurais écrit "if getkey(1) and (getkey(2))... actionRéalisée"
Et bien la tu peux faire "if getkey(3)...actionRéalisée", car la somme des getkey des deux touches fait 3.
Bon après c'est sur qu'il n'y a pas beaucoup de cas ou tu en a besoin mais bon, ça sert toujours.
maxence- Or 4
- Sexe :
Age : 27
Messages : 574
Date d'inscription : 26/02/2012
Etudes : 1ere S SI
Points Forum : 17
Points Concours : 0
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-84+
Re: [Axiome] Le getKey le plus optimisé !
pour le getkey 3 c'est bien mais si le getkey 45 que on veut faire bah...
30+15=45 31+14=45... il y a des miliers de possibiliter
sa sert pratiquements pas
30+15=45 31+14=45... il y a des miliers de possibiliter
sa sert pratiquements pas
nikitouzz- Platinum 1
- Sexe :
Age : 28
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Re: [Axiome] Le getKey le plus optimisé !
Peut-être que les codes des touches est mit de tel manière que ce ganre de cas n'est pas possible.
De plus la commande qui va avec cet Axiom est "getDir()", donc tu peut mettre que tu quitte quand il y a "getKey(45)" et qu'il y a une action quand "getDir(45)", ça les différencient, enfin en tous cas c'est ce que j'ai compris.
De plus la commande qui va avec cet Axiom est "getDir()", donc tu peut mettre que tu quitte quand il y a "getKey(45)" et qu'il y a une action quand "getDir(45)", ça les différencient, enfin en tous cas c'est ce que j'ai compris.
maxence- Or 4
- Sexe :
Age : 27
Messages : 574
Date d'inscription : 26/02/2012
Etudes : 1ere S SI
Points Forum : 17
Points Concours : 0
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-84+
Re: [Axiome] Le getKey le plus optimisé !
sachiix69 :
Cela ne sert que pour les déplacements (en particulier dans des jeux) au cas où tu n'aurais pas remarqué.
Cela ne sert que pour les déplacements (en particulier dans des jeux) au cas où tu n'aurais pas remarqué.
kindermoumoute a écrit:Toutes les autres combinaisons/touches vallent zéro.
linkakro- Or 4
- Sexe :
Age : 30
Messages : 768
Date d'inscription : 01/07/2010
Etudes : dut geii (elec/info)
Points Forum : 51
Points Concours : 8
Langages :- - TI-Basic Z80
- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - TI-82 Stats.fr
- - TI-84 Pocket.fr
Re: [Axiome] Le getKey le plus optimisé !
a oui je n'avais pas vu
il pesent combien ?
il pesent combien ?
nikitouzz- Platinum 1
- Sexe :
Age : 28
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Re: [Axiome] Le getKey le plus optimisé !
Un peu plus d'une centaine d'octets, il me semble.
noelthebest- Platinum 1
- Sexe :
Age : 26
Messages : 1971
Date d'inscription : 12/03/2011
Etudes : ENS Cachan
Points Forum : 20
Points Concours : 9
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-83+.fr
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: [Axiome] Le getKey le plus optimisé !
:O une centaine d'octets juste pour un getkey comme sa... c'est pas du tout optimiser...
nikitouzz- Platinum 1
- Sexe :
Age : 28
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Re: [Axiome] Le getKey le plus optimisé !
Enfin je peux me tromper... après faut aussi voir combien ça fait sans l'axiome.
noelthebest- Platinum 1
- Sexe :
Age : 26
Messages : 1971
Date d'inscription : 12/03/2011
Etudes : ENS Cachan
Points Forum : 20
Points Concours : 9
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-83+.fr
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: [Axiome] Le getKey le plus optimisé !
je pense que c'est moins parceque 100 octets c'est enorme
sa fait beaucoup moins sans l'axioms
sa fait beaucoup moins sans l'axioms
nikitouzz- Platinum 1
- Sexe :
Age : 28
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Re: [Axiome] Le getKey le plus optimisé !
Après, il y a peut-être aussi une différence entre la taille du fichier d'axiom et la taille en plus dans le programme : le fichier d'axium lui doit contenir toute la syntaxe, le changement d'un tokens, ...
sandro- Or 4
- Sexe :
Age : 28
Messages : 806
Date d'inscription : 01/07/2011
Etudes : T°S SVT spé maths
Points Forum : 29
Points Concours : 5
Langages :- - TI-Basic Z80
- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-82 Stats.fr
- - TI-84+ SE
- - TI-89
- - Casio Collège
Re: [Axiome] Le getKey le plus optimisé !
le changement d'un tokens : mon reve <3
bref
en attendant je suis pas sur qu'ils soit utile mais bonne axioms
ps : si matref peut m'expliquer comment cree un axioms sa serait gentil
EDIT : j'ai deplacer ton message matrefeytontias dans la section conseil et astuces
bref
en attendant je suis pas sur qu'ils soit utile mais bonne axioms
ps : si matref peut m'expliquer comment cree un axioms sa serait gentil
EDIT : j'ai deplacer ton message matrefeytontias dans la section conseil et astuces
nikitouzz- Platinum 1
- Sexe :
Age : 28
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Re: [Axiome] Le getKey le plus optimisé !
Bon, je vais mettre au clair les bêtises qui ont été dite. Je posterais surement pas un tel axiome si ce n'était pas le getKey le plus optimisé et le plus rapide possible sur une calculatrice !
Bref, cet axiome est utile dans quasiment tous les jeux/utilitaires qui nécessitent un déplacement rapide, ou tout simplement pour réduire la taille du programme.
Bref, cet axiome est utile dans quasiment tous les jeux/utilitaires qui nécessitent un déplacement rapide, ou tout simplement pour réduire la taille du programme.
kindermoumoute- Or 4
- Sexe :
Age : 30
Messages : 797
Date d'inscription : 07/10/2010
Points Forum : 21
Points Concours : 1
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-83+
Re: [Axiome] Le getKey le plus optimisé !
Juste comme question, qu'est ce qui te permet d'être SUR que c'est bien le plus optimisé en taille et en vitesse qui puisse être?
sandro- Or 4
- Sexe :
Age : 28
Messages : 806
Date d'inscription : 01/07/2011
Etudes : T°S SVT spé maths
Points Forum : 29
Points Concours : 5
Langages :- - TI-Basic Z80
- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-82 Stats.fr
- - TI-84+ SE
- - TI-89
- - Casio Collège
Re: [Axiome] Le getKey le plus optimisé !
sa je ne sais pas...
cependant, son utiliser me semble peut efficace...
cependant, son utiliser me semble peut efficace...
nikitouzz- Platinum 1
- Sexe :
Age : 28
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Re: [Axiome] Le getKey le plus optimisé !
Qu'il soit le meilleur actuellement, ça je veux bien le croire, ce que je ne comprend pas, c'est comment on peut affirmer qu'il est impossible de faire mieux?
sandro- Or 4
- Sexe :
Age : 28
Messages : 806
Date d'inscription : 01/07/2011
Etudes : T°S SVT spé maths
Points Forum : 29
Points Concours : 5
Langages :- - TI-Basic Z80
- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-82 Stats.fr
- - TI-84+ SE
- - TI-89
- - Casio Collège
Re: [Axiome] Le getKey le plus optimisé !
Parce que je me suis renseigné directement auprès de jacobly (le créateur). Tu peux demander aux anti-Axe pro-asm qu'on trouve assez facilement sur le SdZ, ils te diront que le getKey en Axe est pourri... sauf sur cet axiome.
Après je fais le teste :
Pour chaque commande getDir rajoutée : +3 octets.
1 seconde 70 pour terminer le programme.
Pour chaque commande getKey rajoutée : +6 octets.
8 secondes 70 pour terminer le programme.
En gros l'axiome ajoute une routine de 21 octets qui augmente de plus de 500% la vitesse de détection de la touche. Moi je dis ça vaut le coup.
Après je fais le teste :
- Code:
:.A
:#Axiom(SPEEDKEY)
:For(1000)
:getDir
:End
:Disp "FIN
:Pause 2000
Pour chaque commande getDir rajoutée : +3 octets.
1 seconde 70 pour terminer le programme.
- Code:
:.A
:#Axiom(SPEEDKEY)
:For(1000)
:getKey
:End
:Disp "FIN
:Pause 2000
Pour chaque commande getKey rajoutée : +6 octets.
8 secondes 70 pour terminer le programme.
En gros l'axiome ajoute une routine de 21 octets qui augmente de plus de 500% la vitesse de détection de la touche. Moi je dis ça vaut le coup.
kindermoumoute- Or 4
- Sexe :
Age : 30
Messages : 797
Date d'inscription : 07/10/2010
Points Forum : 21
Points Concours : 1
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-83+
Re: [Axiome] Le getKey le plus optimisé !
jusqu'à là, je te crois tout à fait et je n'ai rien a redire, ce sur quoi je m'interroge est le mot POSSIBLE dans la phrase "le getKey le plus optimisé et le plus rapide possible sur une calculatrice" : qu'est ce qui prouve qu'il est impossible de faire plus rapide et/ou plus léger qu'avec cet axiom, avec un autre axiom, voir la commande asm de l'axe?
sandro- Or 4
- Sexe :
Age : 28
Messages : 806
Date d'inscription : 01/07/2011
Etudes : T°S SVT spé maths
Points Forum : 29
Points Concours : 5
Langages :- - TI-Basic Z80
- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-82 Stats.fr
- - TI-84+ SE
- - TI-89
- - Casio Collège
Re: [Axiome] Le getKey le plus optimisé !
Parce que c'est le getKey le plus optimisé fait jusque là pour ce cas de figure. T'as d'autres questions existentielles comme ça ?
kindermoumoute- Or 4
- Sexe :
Age : 30
Messages : 797
Date d'inscription : 07/10/2010
Points Forum : 21
Points Concours : 1
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-83+
Re: [Axiome] Le getKey le plus optimisé !
Bon, merci : ton possible a donc pour valeur "existant".
Sinon, je ne vais pas te poser d'autres questions existancielles ici pour pas faire de flood, mais si tu veux parler philo, préviens moi et on en parle par MP ou on crée un sujet dans la partie communauté
Sinon, je ne vais pas te poser d'autres questions existancielles ici pour pas faire de flood, mais si tu veux parler philo, préviens moi et on en parle par MP ou on crée un sujet dans la partie communauté
sandro- Or 4
- Sexe :
Age : 28
Messages : 806
Date d'inscription : 01/07/2011
Etudes : T°S SVT spé maths
Points Forum : 29
Points Concours : 5
Langages :- - TI-Basic Z80
- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-82 Stats.fr
- - TI-84+ SE
- - TI-89
- - Casio Collège
Re: [Axiome] Le getKey le plus optimisé !
tu peut nous dire kindermoumoute comment il marche ce getkey ?
nikitouzz- Platinum 1
- Sexe :
Age : 28
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Re: [Axiome] Le getKey le plus optimisé !
Je crois deviner ... il fait du direct input avec les touches. C'est un truc en ASM qui n'utilise aucune romcall et qui interagit directement avec le matériel, du coup c'est super rapide.
matrefeytontias- Platinum 1
- Sexe :
Age : 26
Messages : 1383
Date d'inscription : 28/09/2011
Etudes : 1ère S SI
Points Forum : 90
Points Concours : 7
Langages :- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - Lua Nspire
- - Ndless Nspire
- - TI-83+.fr
- - TI-Nspire CAS
Re: [Axiome] Le getKey le plus optimisé !
oups desolee du double post.... je sais pas ce qui c'est passer...
en gros il prend direcement le numero hexa des touche et il les ajoute ?
en gros il prend direcement le numero hexa des touche et il les ajoute ?
nikitouzz- Platinum 1
- Sexe :
Age : 28
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Re: [Axiome] Le getKey le plus optimisé !
Bah le numéro hexa, y'a juste un bit par flèche.
matrefeytontias- Platinum 1
- Sexe :
Age : 26
Messages : 1383
Date d'inscription : 28/09/2011
Etudes : 1ère S SI
Points Forum : 90
Points Concours : 7
Langages :- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - Lua Nspire
- - Ndless Nspire
- - TI-83+.fr
- - TI-Nspire CAS
Sujets similaires
» [AXE] Question sur le getkey...
» Codes du Getkey
» [83] Star wars optimisé v2
» [83]gestion fonction pause personnalisée ou getkey
» Codes du Getkey
» [83] Star wars optimisé v2
» [83]gestion fonction pause personnalisée ou getkey
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|