Poster un nouveau sujet Poster une réponse
mini snak
Auteur Message
come1995



Autorisation : Membre
Nb de messages : 60
Inscrit le : Mer 21 Sep 2011, 17:10
Posté le : Ven 30 Sep 2011, 18:33   Citer 

bon je suis en seconde j'ai redoubler et comme je m’embêtait en physique j'ai crée sa. pourriez vous m'aidez a l’améliorer ou de le raccourcir ou d’améliorer sa rapidité. je tient a préciser que c'est le premier programme que je crée or ceux donner en exercice et qui sont très facile et sans aucun intérêt.

A la 5eme ligne en partant du bas comment enlever le Then qui fait perdre beaucoup de vitesse au programme??

merci

:code

:EffEcr
:0->H
:entAleat(1,7)->A
:entAleat(1,16)->B
:Lbl Z
:entALeat(1,7)->C
:entAleat(1,16)->D
:Lbl K
:EffEcr
:Disp H
:Outout(C,D,"8
:output(A,B,"0 //zero et pas O
:codeTouche->K
:If K=24
:B-1->B
:if K=26
:B+1->B
:if K=25
:A-1->A
:if K=34
:A+1->A
:if A=C et B=D
:Then
:H+1->H
:Goto Z
:Else
:Goto K

 Adresse email Haut de page Bas de page 
 
come1995



Autorisation : Membre
Nb de messages : 60
Inscrit le : Mer 21 Sep 2011, 17:10
Posté le : Ven 30 Sep 2011, 18:46   Citer 

j'ai aussi l'intention de faire un menu.

 Adresse email Haut de page Bas de page 
 
come1995



Autorisation : Membre
Nb de messages : 60
Inscrit le : Mer 21 Sep 2011, 17:10
Posté le : Ven 30 Sep 2011, 18:50   Citer 

j'ai oublier de preciser que l'on ne peut pas perdre...... goutte.gif

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 30 Sep 2011, 20:13   Citer 


Code
:EffEcr
:DelVar H
:entAleat(1,7)->A
:entAleat(1,16)->B
:Lbl Z
:entALeat(1,7)->C
:entAleat(1,16)->D
:Lbl K
:EffEcr
:Disp H
:Outout(C,D,"8
:output(A,B,"0
:codeTouche->K
:B-(K=24)+(K=26->B
:A-(K=25)+(K=34->A
:If A-C ou B-D
:Goto K
:H+1->H
:Goto Z


Il reste maintenant à :
-le convertir en graphique,
-à empêcher les sorties d'écran
-que le serpent continue d'avancer seul en ligne droite
-donner de la longueur au serpent
-gérer les collisions en graphique avec pxl-Test.
...?

graphique :
EffDessin pour effacer l'écran
Texte(Y,X,"text" comme pour output
Il faudra changer les coordonnées dans texte et dans les autres fonctions.

sorties d'écran :
* retenir à l'intérieur de l'écran
min(16,max(1,X-(K=24)+(K=26->X
Cette ligne gère à la fois les sorties et le contrôle.
Modifie 16 ou 1 selon les bords de l'écran
*ramener de l'autre côté
X-16(X>16)+16(X<1->X Les extrèmes sont 16 et 1

stocke K dans une autre variable uniquement s'il correspond à un déplacement et utilise cette variable à la place de K dans le code de déplacement.
-> le serpent continuera en ligne droite seul

Le plus difficile reste à faire : allonger le serpent et bien sûr effacer progressivement son trajet. (plus gérer des collisions avec sa queue)
Nous le traîterons peut-être si on règle le reste.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Ven 30 Sep 2011, 20:24   Citer 


Code
:EffEcr
:0->H
:entAleat(1,7->A     //ici tu peut enlever la seconde parenthèse
:entAleat(1,16->B     //ici tu peut enlever la seconde parenthèse
:While H-128    //tant que le sepant n'ocupe pas toute les cases
:entALeat(1,7->C     //ici tu peut enlever la seconde parenthèse
:entAleat(1,16->D     //ici tu peut enlever la seconde parenthèse
:While A-C ou B-D     //tant que le serpant n'a pas mangé
:EffEcr
:Disp H       //à ta place, je le mettrait plutôt à la dernière ligne du programme, sinon, ça peut t'effacer une partie du serpant
:Outout(C,D,"8
:output(A,B,"0
:codeTouche->K
:B-(K=24)+(K=26->B   //simplification en utilisant le fait que vrai=1 et faux=0
:A-(K=25)+(K=34->A   //idem
:End     //fin de la boucle de déplacement
:H+1->H
:End     //fin de la boucle globale (un "repas")



Remplacer les Goto par des boucles est un bon choix en TI-Basic


Sandro

PS : j'ai pas testé, mais ça devrait marcher

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 30 Sep 2011, 21:02   Citer 

N'oublie pas que "=/=" peut dans ce code se remplacer par "-".

Les boucles permettent une légère accélération mais tu pratiques deux tests au lieu d'un.
Je doûte de l'intérêt du deuxième test mais cela reste efficace.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Ven 30 Sep 2011, 23:43   Citer 

Merci, j'édite

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
come1995



Autorisation : Membre
Nb de messages : 60
Inscrit le : Mer 21 Sep 2011, 17:10
Posté le : Mer 05 Oct 2011, 18:10   Citer 

merci linkakro mais je ne sait pas comment intégrer ce que tu ma dit . j'ai essayé mais rien ne change

 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mer 05 Oct 2011, 18:27   Citer 

En gros, il t'expliquait juste que :

Code
If expression1 =/= expréssionB


peut-être remplacé par

Code
If expression1-expression2



Celà est plus court et plus rapide (un test est plutôt lent à réaliser. If peut-être remplacé par une autre fonction qui est soumise à condition (ex: While, Reapeat)

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 05 Oct 2011, 20:54   Citer 

J'ai expliqué pas mal d'autres trucs dont certains déjà pris en compte dans ton code.
Mais je n'ai plus le temps de bidouiller un programme à chaque fois que je veux montrer des choses à quelqu'un.
(Ce week-end avec de la chance sinon c'est comprommis.)

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Page générée en 6 requêtes