Poster un nouveau sujet Poster une réponse
Traduction
Auteur Message
-Coco-



Autorisation : Membre
Nb de messages : 149
Inscrit le : Sam 28 Nov 2009, 16:09
Posté le : Mer 17 Fév 2010, 17:36   Citer 

Salut les programmateurs!!

Je me posais quelques questions sur les fonctions d'une ligne que je trouvais souvent dans des programmes que je recopiais(je m'en pose toujours d'ailleurs) et j'aimerais bien savoir ce que cela donne.

Un exemple concret d'une ligne tirée d'un programme de Sypotu:


Code

:X-3(T=24 et Pxl-Test(-Y,X+L1(2)-2)=0)+3(T=26 et Pxl-Test(-Y,X+L1(3)+2)=0)->X


Enfin cette ligne là est compliquée mais du genre

:X+3(T=24)-3(T=26)-> X


Si vous en avez une idée, merci de me répondre!!

 Adresse email Haut de page Bas de page 
 
Didouille
Avatar

Autorisation : Membre
Nb de messages : 158
Inscrit le : Dim 11 Oct 2009, 14:18
Posté le : Mer 17 Fév 2010, 21:00   Citer 

Oué j'ai une idée ^^ je crois qu'on appelle sa en langage C des booléens.

"On dit qu'une variable à laquelle on fait prendre les valeurs 0 et 1 est un booléen."

Alors enfaite ta ligne :


Code
:X+3(T=24)-3(T=26)-> X



Si quand le programme rencontre cette ligne :

- T=24, alors dans le code (T=24)=1. Donc 3(T=24)=3*1=3
On a alors (T=26)=0 car justement T=24 et donc, 3(T=26)=3*0=0

- T=26, alors dans le code (T=26)=1. Donc 3(T=26)=3*1=3
On a alors (T=24)=0 car justement T=26 et donc, 3(T=24)=3*0=0

Cette ligne veut enfaite dire que :
- Si T=24, alors 3 est rajouter à X
- Si T=26, alors 3 est enlever à X

Enfaite on peux écrire à la place :

Code
If T=24:X+3->X
If T=26:X-3->X



Prenons un exemple, la partie getKey sur un tutoriel du site du zéro :http://www.siteduzero.com/tutoriel-3-3618-getkey.html


Code
:ClrHome
:1->X:1->Y
:Repeat K=105
:Output(Y,X,"+"
:getKey->K
:If K=24:X-1->X
:If K=26:X+1->X
:If K=25:Y-1->Y
:If K=34:Y+1->Y
:If X=0:1->X // le bord gauche
:If X=17:16->X // le bord droit
:If Y=0:1->Y // le bord du haut
:If Y=9:8->Y // le bord du bas
:End



Ce code Déplace un + sur l'écran suivant la touche que l'on presse et gère les colision (si le + arrive à une extrémité, il ne faut pas que le programme ne renvoie d'erreur)
Maintenant, on va l'optimiser.(Le raccourcir et donc le rendre plus rapide)


On peut remplacer sa :

Code
:If K=24:X-1->X
:If K=26:X+1->X
:If K=25:Y-1->Y
:If K=34:Y+1->Y



Par :

Code
:X-(K=24->X
:X+(K=26->X 
:Y-(K=25->Y
:Y+(K=34->Y



Ou même mieux par :

Code
:X-(K=24)+(K=26)->X 
:Y-(K=25)+(K=34)->Y





Maintenant, on optimise sa :(le gars du tutoriel ne l'a pas fait)

Code
:If X=0:1->X
:If X=17:16->X
:If Y=0:1->Y
:If Y=9:8->Y



On peut mettre à la place :

Code
X+(X=0)-(X=17)->X
Y+(Y=0)-(Y=9)->Y




Cette fois, on veut que le plus aille de l'autre côté de l'écran, s'il tombe à une extrémité :

Code
X+16(X=0)-16(X=17)->X
Y+8(Y=0)-8(Y=9)->Y




Et voilà, on a optimiser le code, on a maintenant :

Code
:ClrHome
:1->X:1->Y
:1->A:1->B
:Repeat K=105
:Output(A,B," "
:Output(Y,X,"+"
:Y->A:X->B     
:getKey->K
:X-(K=24)+(K=26)->X 
:Y-(K=25)+(K=34)->Y
:X+16(X=0)-16(X=17)->X
:Y+8(Y=0)-8(Y=9)->Y
:End



----------------------
--Didouille--
 Adresse email Haut de page Bas de page 
 
-Coco-



Autorisation : Membre
Nb de messages : 149
Inscrit le : Sam 28 Nov 2009, 16:09
Posté le : Mer 17 Fév 2010, 21:19   Citer 

Aaah ok!

Ouais j'ai des notions de langage C (même C++ ^^ ) je vois tout a fait!
ok!
Je l'avais pas du tout vu comme ça a la base ^^
Merci!

Dis donc toi aussi tu vas sur le Site du Zero? j'adore ce site ^^ tu trouves de tout et n'importe quoi la dedans ^^

 Adresse email Haut de page Bas de page 
 
Didouille
Avatar

Autorisation : Membre
Nb de messages : 158
Inscrit le : Dim 11 Oct 2009, 14:18
Posté le : Mer 17 Fév 2010, 22:27   Citer 

C'est un plaisir de t'avoir aider =)
Et oui j'adore le site du zéro ! J'ai lu et suivi le cours de Matheo sur le C mais j'ai abandonner aux pointeurs ^^. Sinon j'ai un peu suivi le cour de Modélisation 3D, quelques articles, les trucs de Ti et des fois des news.

----------------------
--Didouille--
 Adresse email Haut de page Bas de page 
 
-Coco-



Autorisation : Membre
Nb de messages : 149
Inscrit le : Sam 28 Nov 2009, 16:09
Posté le : Mer 17 Fév 2010, 22:54   Citer 

^^ moi j'ai tenu le coup en langage C j'ai même créé un jeu débile ou faut éviter des obstacles qui tombent ^^ malgré quelques petits bugs ça marche ^^

apres j'ai abandonné car pour l'instant ça me sert pas

 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink