Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
Simplification code
xDreams le 13/11/2011 à 21:52
Bonsoir !

Je voudrais savoir si le code suivant était simplifiable :
Code
If (A=1 and K=92 or (A=2 and K=93 or (A=3 and K=94 or (A=4 and K=82 or (A=5 and K=83 or (A=6 and K=84 or (A=7 and K=72 or (A=8 and K=73 or (K=9 and K=74
Merci de vos réponses !
xDreams
The K le 13/11/2011 à 22:03
Vu comme ça, je ne crois pas, surtout vu qu'il y a un If dans l'instruction ... Après ... Je ne suis pas le meilleur programmeur ici ... Je pense par exemple a Sandro, qui est un véritable spécialiste de l'optimisation
(mais j'espère malgré tout avoir raison !

)
xDreams le 13/11/2011 à 22:05
Ok ok parce que j'avais vu dans un article ( je sais plus de qui) avec un code du genre qui était simplifiable donc...

Persalteas le 13/11/2011 à 22:52
Oui tu peux: mais pas de beaucoup:
Je crois que les parenthèses sont inutiles...
Mais teste quand même, je suis pas sur.

The K le 13/11/2011 à 22:59
Ah c'est vrai (mince m'suis trompé !) : le boleen "et" est prioritaire sur le "ou".Polymorph le 14/11/2011 à 10:30
Ouais, c'est simplifiable, j'en ai fait un dans le genre
ça donne un truc comme ça :
Code
If K =< 92 et K >= 94 et A = K - 91 ou (K =< 82 et K >= 84 et A = K - 81 ou (K =< 72 et K >= 74 et A = K - 71)
C'est déja un peu plus court

Persalteas le 14/11/2011 à 12:44
La aussi tu peux enlever les parenthèses. Le "et", c'est comme la multiplication, c'est prioritaire.xDreams le 14/11/2011 à 18:33
En gros sa donne sa ? :
Code
If K =< 92 et K >= 94 et A = K - 91 ou K =< 82 et K >= 84 et A = K - 81 ou K =< 72 et K >= 74 et A = K - 71
Merci à vous en tout cas !
-----------------------------------
EDIT: Alors j'ai essayé, et déjà sa pèse plus lourd, et puis sa pointe sur le = avec une jolie erreur syntaxe
tilo1996 le 14/11/2011 à 18:45
Hum, le =< est le symbole inferieur ou egal, pas egal suivi de inferieurxDreams le 14/11/2011 à 18:52
J'ai remplacé (oui j'avais pas vu) mais toujours erreur syntaxe entre le inférieur ou égal à 92.snap le 14/11/2011 à 18:54
Faut pas mettre d'espace. Je sais pasa si t'en a mis mais bon^^Polymorph le 14/11/2011 à 18:55
J'avais mis les espaces pour que ce soit plus clair hein

Snap a raison, faut pas les mettre.
Et le signe =< par exemple, c'est celui qu'on utilise dans d'autres langages, le C par exemple pour Inférieur ou égal.
xDreams le 14/11/2011 à 18:56
Ouais bien vu :p Je suis pas encore bon en optimisations haha ^^
------------
EDIT: ouais j'ai compris mais y a une erreur syntaxe... :pPolymorph le 14/11/2011 à 19:05
Attends, merde, je me suis planté quand je t'ai filé le truc je crois :
Code
If K=<92 et K>=94 et A=K-91 ou K=<82 et K>=84 et A=K-78 ou K=<72 et K>=74 et A=K-65
Ça devrait marcher là.
xDreams le 14/11/2011 à 20:33
Encore l'erreur :psnap le 14/11/2011 à 20:36
Quel erreur? Moi je l'ai fait et il marche. C'est une erreur syntaxe? erreur dim?xDreams le 14/11/2011 à 20:43
Bon vous savez quoi ? je vous poste tout le programme comme sa c'est fait (avec les modifs) :p A mon avis l'erreur c'est en rapport avec le prog...
Code
3ü (
) dim(áREFLE
ClrHome
Disp "REFLEXES V1.0
Output(4,6,"BY
Output(6,5,"DREAMS-TI
Pause
ClrHome
Lbl Á
400ü (
) F
Menu("Rëã1ëËës-Tà","JOUER",1,"QUITTER",Q
Lbl 1
ClrHome
Output(4,7,"GO!:Pause
ClrHome
0ü (
) S
Disp "","TAPE LE ","SCORE:
Output(3,8,S
Lbl 2
round(8rand+1,0ü (
) A
Output(2,10,A
For(T,0,F
End
getKeyü (
) K
If K÷ (
) 92 et Kù (
) 94 et A=K-91 Ou K÷ (
) 82 et Kù (
) 84 et A=K-78 Ou K÷ (
) 72 et Kù (
) 74 et A=K-65
Then
S+1ü (
) S
F-10ü (
) F
Output(4,8,S
Goto 2
Else
ClrHome
Disp "","GAME OVER !","SCORE:","VITESSE:
Output(3,8,S
Output(4,10,410-F
Pause
ClrHome
Sü (
) L‚(4
SortD(L‚
3ü (
) dim(L‚
(ln((8L‚+Ä/2Ü^3/log(ëÜ-Ä+3ü (
) áREFLE
Disp "RECORDS:",L‚
Pause
Goto Á
Lbl Q
ClrHome
Output(4,2,"MERCI D'AVOIR
Output(5,6,"JOUE !
Pause
ClrHome snap le 14/11/2011 à 20:50
Ce code est largement simplifiable!
Code
3ü (
) dim(áREFLE
ClrHome
Disp "REFLEXES V1.0
Output(4,6,"BY
Output(6,5,"DREAMS-TI
Pause
ClrHome
Lbl Á
400ü (
) F
Menu("Rëã1ëËës-Tà","JOUER",1,"QUITTER",Q
Lbl 1
ClrHome
Output(4,7,"GO!:Pause
ClrHome
0ü (
) S
Disp "","TAPE LE ","SCORE:
Output(3,8,S
Lbl 2
entaleat(1,9 -> A
Output(2,10,A
For(T,0,F
End
getKeyü (
) K
If A=10PartDec(K/10)-1+3(9+PartEnt(K/10
Then
S+1ü (
) S
F-10ü (
) F
Output(4,8,S
Goto 2
Else
ClrHome
Disp "","GAME OVER !","SCORE:","VITESSE:
Output(3,8,S
Output(4,10,410-F
Pause
ClrHome
Sü (
) L‚(4
SortD(L‚
3ü (
) dim(L‚
(ln((8L‚+Ä/2Ü^3/log(ëÜ-Ä+3ü (
) áREFLE
Disp "RECORDS:",L‚
Pause
Goto Á
Lbl Q
ClrHome
Output(4,2,"MERCI D'AVOIR
Output(5,6,"JOUE !
Pause
Beaucoup plus rapide et simple a marqué^^
xDreams le 14/11/2011 à 20:52
Ok ok merci c'est cool snap

Faut vraiment que je m'y mette sérieusement à l'optimisation !
snap le 14/11/2011 à 21:00
Pour sa c'est juste que j'ai deja fait ce jeu la. Il était beaucoup moins long et j'avais envie de trouver une solution pour que le codetouche soit égale au chiffre sur la calculette alors j'ai trouver sa :
Code
codetouche -> K
10Partdec(K/10)-1+3(9+PartEnt(K/10 -> A
^^
xDreams le 14/11/2011 à 21:03
Je pense que t'as commis une petite erreur car déjà y a que le chiffre 5 qui apparait donc c'est plus aléatoire (trop facile hein !) et puis quand j'appuie sur la touche 5 sa prends pas en compte donc je perds :p Sinon tout va bien...snap le 14/11/2011 à 21:14
Normalement A est un nombre entre 0 et 9 donc sa doit etre une erreur de recopiage. Ensuite je comprend pas très bien son code... il est bizarre et je dirai qu'il est "faux" parce que d'après lui on a 0.01 s pour apuyer sur la bonne touche aprèsun temps d'attente. C'est bizarre^^ Si tu veut le meme jeux, je te le fais "a l'arrache" mais il marche :
Code
:Effecr
:Output(4,4,"PRETS?
;Pause
:Effecr
:-1 -> S
:Repeat A [pas egal a] B
:69-Ent(S/5 -> D
:Entaléat(1,9 -> B
Output(4,8,B
:repeat K ou non(D
output(1,16,D
:D-1 -> D
:Codetouche -> K
:End
:S+1 -> S
:10PartDec(K/10)-1+3(9+PartEnt(K/10 -> A
:End
:Effecr
:Disp "LOUPE! SCORE :
:Pause S
:Effecr
Je viens de le faire et je l'ai pas testé . dis moi si sa marche

xDreams le 14/11/2011 à 21:22
bah en faites je l'ai fais moi même ^^' Mais avant d'essayer de simplifier le truc sa marchait super bien !

Mais là pour le tien il demande pas de touche donc je perds .
snap le 14/11/2011 à 21:24
Si c'est parceque j'ai remarqué après que j'avais oublié une ligne mais mtn c'est bon^^xDreams le 14/11/2011 à 21:38
Ok mais toute façon je le laisse comme au départ (il pèse 602 octets) franchement sa passe !

snap le 14/11/2011 à 21:41
C'est beaucoup pour un jeu si simple^^xDreams le 15/11/2011 à 17:48
C'est sur mais pour mon premier vrai jeu bah... je suis content :p Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.