π
<-
Chat plein-écran
[^]

Entrer une réponse dans un temps imparti

Entrer une réponse dans un temps imparti

Message non lude PiR » 10 Mar 2015, 21:02

Bonjour, (oui c'est encore moi :p )
Je voudrais savoir comment faire pour que quelqu'un rentre une réponse (un nombre) dans un temps imparti.
J'ai trouvé une solution mais je pense qu'on peut mieux l'optimiser mais comment ?
Code: Tout sélectionner
1->H
0->X
"1234567890"->Str1
" "->Str3
Repeat K=105
0->K
getKey->K
If K=102
Then
Output(1,H,0)
92üN
End
If K>=92 and K=<94
Then
Output(1,H,K-91
91->N
End
If K>=82 and K=<84
Then
Output(1,H,K-78
78->N
End
If K>=72 and K=<74
Then
Out>put(1,H,K-65
65-N
End
If K!=105 and K!=0
Then
sub(Str1,K-N,1)->Str2
Str3+Str2->Str3
H+1->H
End
X+1->X
If X=200
Disp "TROP TARD
End
Str3

Auriez-vous une idée pour l'optimiser ou alors avez-vous une autre solution ?
Merci d'avance
Mes programmes (tous en basic) sont ici
Avatar de l’utilisateur
PiR
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 46.9%
 
Messages: 45
Inscription: 25 Fév 2015, 18:33
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S-SI

Re: Entrer une réponse dans un temps imparti

Message non lude Epharius » 11 Mar 2015, 17:53

Déjà, je ne pense qu'il y ai besoin d’initialiser K avant le getkey, c'est automatique ;)
Ensuite le k!=0 peut être simplifié en k c'est-à-dire : If K!=105 and k

Mais sinon je ne vois pas trop comment tu pourrais faire autrement, c'est déjà pas mal optimisé...
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
Avatar de l’utilisateur
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 7%
 
Messages: 1107
Images: 4
Inscription: 08 Déc 2014, 17:38
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Ensimag
GitHub: MathisLav

Re: Entrer une réponse dans un temps imparti

Message non lude Wistaro » 11 Mar 2015, 20:04

Tu peux toujours gagner quelques octets en enlevant les " et) finaux.

Code: Tout sélectionner
Output(1,H,0)



Devient

Code: Tout sélectionner
Output(1,H,0



Ou encore

Code: Tout sélectionner
"1234567890"->Str1



Devient

Code: Tout sélectionner
"1234567890->Str1

.
Ce ne sont que des exemples, il y en a encore d'autres dans ton programme.

Ah, oui, aussi. Ceci:

Code: Tout sélectionner
DelvarK
//Ou plus haut dans ton programme
DelvarX


Au lieu de

Code: Tout sélectionner
0->K
//et plus haut dans ton programme
0->X

(mais ici, comme dit Ptirageur, c'est inutile pour le K).

Au final, ton début de code ça donne cela:

Code: Tout sélectionner
1->H
DelvarX"1234567890->Str1


Enfin,

Ceci:

Code: Tout sélectionner
If K>=72 and K=<74


Peut devenir :
Code: Tout sélectionner
If (K>=72)(K=<74


Et pareil pour tes autres conditions. Je sais pas si tu gagnes quelques octets, mais c'est plus propre je trouve :)

Aussi:

Code: Tout sélectionner
sub(Str1,K-N,1)->Str2
Str3+Str2->Str3


Peut devenir :
Code: Tout sélectionner
Str3+sub(Str1,K-N,1->Str3


Voilà je pense que j'ai fait le tour!
Dernière édition par Wistaro le 11 Mar 2015, 20:13, édité 1 fois.
Avatar de l’utilisateur
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 87.5%
 
Messages: 3153
Images: 37
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur en électronique
YouTube: Wistaro
Twitter/X: Wistaro
GitHub: Wistaro

Re: Entrer une réponse dans un temps imparti

Message non lude Epharius » 11 Mar 2015, 20:11

Enfin,

Ceci:

Code: Tout sélectionner
If K>=72 and K=<74



Peut devenir :

Code: Tout sélectionner
If (K>=72)+(K=<74



Et pareil pour tes autres conditions. Je sais pas si tu gagnes quelques octets, mais c'est plus propre je trouve :)


Par contre wistaro, il faudrait remplacer ton If (K>=72)+(K=<74 par un If (K>=72)(K=<74 parce que sinon ça remplace le Or et non le And ;)
Dernière édition par Epharius le 11 Mar 2015, 20:14, édité 1 fois.
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
Avatar de l’utilisateur
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 7%
 
Messages: 1107
Images: 4
Inscription: 08 Déc 2014, 17:38
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Ensimag
GitHub: MathisLav

Re: Entrer une réponse dans un temps imparti

Message non lude Wistaro » 11 Mar 2015, 20:13

Ah flûte merci de l'avoir signalé :)

PS: Je viens d'éditer mon message à l'instant
Nouveau sur le site, Anonymous ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
Avatar de l’utilisateur
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 87.5%
 
Messages: 3153
Images: 37
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur en électronique
YouTube: Wistaro
Twitter/X: Wistaro
GitHub: Wistaro

Re: Entrer une réponse dans un temps imparti

Message non lude PiR » 11 Mar 2015, 20:16

ok super merci les gars
Mes programmes (tous en basic) sont ici
Avatar de l’utilisateur
PiR
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 46.9%
 
Messages: 45
Inscription: 25 Fév 2015, 18:33
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S-SI

Re: Entrer une réponse dans un temps imparti

Message non lude Wistaro » 11 Mar 2015, 20:27

Pas de souci !
Nouveau sur le site, Anonymous ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
Avatar de l’utilisateur
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 87.5%
 
Messages: 3153
Images: 37
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur en électronique
YouTube: Wistaro
Twitter/X: Wistaro
GitHub: Wistaro

Re: Entrer une réponse dans un temps imparti

Message non lude grosged » 24 Mar 2015, 20:27

Au sujet du
Code: Tout sélectionner
If (K≥72)(K≤74

On peut encore grapiller 4 octets avec
Code: Tout sélectionner
If 1≥abs(73-K
;)
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Entrer une réponse dans un temps imparti

Message non lude Wistaro » 27 Mar 2015, 11:01

Hein? Tu peux expliquer ?
Nouveau sur le site, Anonymous ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
Avatar de l’utilisateur
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 87.5%
 
Messages: 3153
Images: 37
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur en électronique
YouTube: Wistaro
Twitter/X: Wistaro
GitHub: Wistaro

Re: Entrer une réponse dans un temps imparti

Message non lude grosged » 27 Mar 2015, 14:02

K est-il entre 72 et 74 ?
Code: Tout sélectionner
If (K≥72)(K≤74

qu'on peut formuler aussi "K est-il dans les parages de 73 ? (c'est-à dire =73 ou juste à côté)"
avec K=72, 73 ou 74 , (73-K) nous donnera respectivement 1,0,-1
d'où la simplification en passant en absolu:
Code: Tout sélectionner
If abs(73-K)≤1

et en optimisant un chouïa (histoire de retirer une parenthèse)
Code: Tout sélectionner
If 1≥abs(73-K


On pourrait même étendre cette façon de faire au pavé numérique (sauf le zéro)
Si l'on veut juste savoir si l'une des 9 touches à été pressée :
On prend la valeur de la touche centrale, en l'occurence la touche
5
(dont le getKey=83)
Avec (83-K) on aura les résultats:
11,10,9
1,0,-1
-9,-10,-11
en passant en absolu, abs(83-k) nous donnera soit 0,1,9,10,11
là, on remarque que pour les 3 dernières valeurs possibles, il nous suffirait de soustraire 10 pour de nouveau arriver à une valeur -1,0 ou 1
Ce qui nous fait:
Code: Tout sélectionner
Repeat 1≥Ans or 1≥abs(Ans-10
getKey→K:Abs(83-K
End
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile


Retourner vers TI-Basic

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 5 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
985 utilisateurs:
>973 invités
>8 membres
>4 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)