Forum

Catégorie : Programmes
Forum : Les programmes des internautes
Vues : 1654
Réponses : 13
Type : discussion
Etat : réponses autorisées

Aide pour mario

come1995 le 16/02/2012 à 22:00
j'ai cree un mario mais le programme ralenti au fur et a meusure du temps. comment faire ppour avoir toujours la meme vitesse de jou ou pour qu'elle accelaire. je suis sur ti 82 stat. merci d'avance
linkakro le 16/02/2012 à 22:29
Nous ne pouvons pas t'aider avec aussi peu d'informations.
C'eût-été pratique de poster ton programme pour qu'on cherche ce qui ne va pas.

L'usage des mails est loin d'être automatique quand on poste sur un forum.

Consulte mon article goto+ralentissement. Il donne quelques bases pour comprendre la cause la plus commune de ralentissement.
come1995 le 17/02/2012 à 17:05
desoer je peut pas le tapper je part ce soir mais en generale comment on
fait pour accelerer un programme au cours du temps??
sandro le 17/02/2012 à 19:55
Optimiser le code (le rendre plus rapide) puis rajouter un ralentisseur dont la durée est décroissante (par example :
Code
For(A,1,B/100):End
avec B initialisé à une valeur donnée et décrémenté (-1) à chaque execution de la boucle principale (ou d'autre chose si tu préfère)
linkakro le 17/02/2012 à 22:04
Pour commencer cherche ce qui le fait ralentir.
(Mon article indique une des causes possibles de ralentissements intempestifs.)
Quand sa vitesse sera constante, on pourra chercher utilement des moyens de l'amméliorer en vitesse.

De plus, comme l'a dit sandro, on peut brider le programme lors des premières boucles puis le débrider progressivement.
Code
While...  // Boucle principale
...
For(A,1,B):End // temporisation
...
B-1->B
...
End
come1995 le 07/03/2012 à 13:59
voila mon mario desole de pas l'avoir poster plus tôt je pouvai tpas je n'ai pas pu non plus regler le probleme de la vitesse qui diminue. vous allez voir c'est le bordelle!!!



Code
:EffEcr
:0-> thetha
:1->A
:7->Y
:14->X
:Lbl 2
:Output(4,6,"PAUSE
:Pause
:Lbl 1
:A+1->A
:If A=17
:1->A
:If X=2
:3->X
:EffEcr
:codeTouche->K
:If (K=25 et Y=7)
:Y-3->Y
:if Y<7
:Y+1->Y
:X+(K=26)-(K=24)->x
:Output(Y-2,X,"0
:Output(Y-1,X-1,"-I-
:Output(Y,X,"H
:Output(8,1,"----------------
:If A=16
:entAleat(2,3->E
:theta+1->theta
:If E=2
:Output(8,A," "
:If E=3
:Outuput(7,A,"=
:If(E=2 et Y=7 et(A=X ou A=X-1))
:Then
:EffEcre
:Output(4,5,"PERDU
:Output(5,4,"SCORE
:Output(5,10,theta
:Output(Y,X,"0
:Output(8,1,"----------------
:Output(8,A," "
:Output(Y+1,X-1,"-I-
:Stop
:if(E=3 et Y=7 et A=X)
:Then
:EffEcr
:Output(4,5,"PERDU
:Output(5,7,theta
:Output(Y-2,X,"0
:Output(Y-1,X-1,"-I-
:Output(Y,X,"=
:Output(8,1,"----------------
:Stop
:Else
:If K=105
:Goto 2
:Goto 1
Cytropus le 07/03/2012 à 19:48
Remplace d'abord Lbl 1 par While 1 et le Goto 1 par End
De plus tu peux gangner pas mal d'octet avec des petites actuces
Code
:EffEcr
:EffVar [thetha]1->A                    <-// pas besoin des ":" derrière thetha
:7->Y
:14->X
:While 1
:A+1->A
:If A=17
:1->A
:If X=2
:3->X
:EffEcr
:codeTouche->K
:If K=25 et Y=7                      <-// pas besoin de parenthèses
:Y-3->Y
:if Y<7
:Y+1->Y
:X+(K=26)-(K=24->x
:Output(Y-2,X,"0
:Output(Y-1,X-1,"-I-
:Output(Y,X,"H
:Output(8,1,"----------------
:If A=16
:entAleat(2,3->E
:theta+1->theta
:If E=2
:Output(8,A," "
:If E=3
:Outuput(7,A,"=
:If E=2 et Y=7 et(A=X ou A=X-1          <-// pas besoin de parenthèses
:Then
:EffEcre
:Output(4,5,"PERDU
:Output(5,4,"SCORE
:Output(5,10,theta
:Output(Y,X,"0
:Output(8,1,"----------------
:Output(8,A," "
:Output(Y+1,X-1,"-I-
:Stop
:End
:If E=3 et Y=7 et A=X              <-// pas besoin de parenthèses
:Then
:EffEcr
:Output(4,5,"PERDU
:Output(5,7,theta
:Output(Y-2,X,"0
:Output(Y-1,X-1,"-I-
:Output(Y,X,"=
:Output(8,1,"----------------
:Stop
:Else
:If K=105
:then
:Output(4,6,"PAUSE
:Pause
:End
:End
:End


j'ai aussi déplacé le pause car la boucle ralentie avec des Goto comme te l'a expliqué linkakro

Si il y a encore un problème de ralentissement fait nous signe happy.gif
come1995 le 07/03/2012 à 21:11
Ok je test demain et je vous dit frozen.gif
linkakro le 08/03/2012 à 00:13
Des boucles sont ouvertes de partout mais plusieurs ne sont pas refermées.
Remplacez le Else par un End puis ajoûtez un End après le premier Stop.
On peut enlever les parenthèses fermantes en fin de lignes et juste avant sto->.
come1995 le 10/03/2012 à 11:32
voila la version final de mario sans bug!!! godgrace.gif godgrace.gif godgrace.gif bigmouth.gif bigmouth.gif bigmouth.gif


Code
:EffEcr
:0-> thetha
:1->A
:7->Y
:14->X
:Lbl 2
:Output(4,6,"PAUSE
:Pause
:Lbl 1
:A+1->A
:If A=17
:1->A
:If X=2
:3->X
:EffEcr
:codeTouche->K
:If (K=25 et Y=7)
:Y-3->Y
:if Y<7
:Y+1->Y
:X+(K=26)-(K=24)->x
:Output(Y-2,X,"0
:Output(Y-1,X-1,"-I-
:Output(Y,X,"H
:Output(8,1,"----------------
:If A=16
:entAleat(2,3->E
:theta+1->theta
:If E=2
:Output(8,A," "
:If E=3
:Outuput(7,A,"=
:If(E=2 et Y=7 et(A=X ou A=X-1))
:Then
:EffEcre
:Output(4,5,"PERDU
:Output(5,4,"SCORE
:Output(5,10,theta
:Output(Y,X,"0
:Output(8,1,"----------------
:Output(8,A," "
:Output(Y+1,X-1,"-I-
:Stop
:end
:if(E=3 et Y=7 et A=X)
:Then
:EffEcr
:Output(4,5,"PERDU
:Output(5,7,theta
:Output(Y-2,X,"0
:Output(Y-1,X-1,"-I-
:Output(Y,X,"=
:Output(8,1,"----------------
:Stop
:end
:If K=105
:Goto 2
:Goto 1
Persalteas le 15/03/2012 à 09:08
Les posts suivants ont été déplacés depuis un autre sujet, c'est pour ça que c'est moi qui les mets.



_________________________________________________________________________________________
Cytropus

Sans vouloir abuser de ta gentillesse je me permet une remarque...
Est-ce normal que tu n'a tenus compte d'aucune de nos modiffications ? godgrace.gif

_________________________________________________________________________________________
come1995

bas le while end sa marche pas et l'autre sa change pas beaucoup niveau octet alors non

_________________________________________________________________________________________
Cytropus

Comment ça while End ne marche pas maxiangry.gif
T'es sur d'avoir bien copié le prgm ahh.gif
T'as du avoir oublié un End quelque part angry.gif

_________________________________________________________________________________________
Linkakro

Il a fini par trouver quelque chose qui fonctionne au niveau des boucles... Cela lui suffit.
Le reste est superflu, il s'agit de légèreté et propreté.
Mais on peut probablement le réécrire avec des optimisations plus substantielles.
__________________________________________________________________________________________
Cytropus le 15/03/2012 à 11:57
Waouh bigmouth.gif
Je savais pas que tu pouvait faire ça !

PS: faudra que vous nous faisiez une liste de tout vous pouvoirs, ça devient flippant frozen.gif
sandro le 15/03/2012 à 18:24
je dirait que là, ça a été poster les messages à l'aide d'un copier-coller (ça chacun peut le faire), mettre les psudos des posteurs et les colorer en orange (chacun peut le faire). La seule chose qu'il a peut-être fait et qu'un simple membre ne peut pas faire est de supprimer les messages sur l'ancien sujet (on ne peut effacer que ses propres sujets).

Sandro
Persalteas le 15/03/2012 à 20:33
Exact, winkle.gif c'est du copié coller de vos messages, avec votre pseudo en orange et en gras.

et pour séparer, utilisez l'underscore _ mais beaucoup de fois... ______

Je n'ai fait que mettre un message, toi aussi tu peux le faire, ça.


Mon "exploit" a seulement été de supprimer l'autre topic.
je peux supprimer et éditer les messages et les topics, ainsi que déplacer les topics dans un autre forum. Ce n'est pas grand chose.

sur forumactif, les modos, on peut faire plein de trucs marrants qu'ici on peut pas faire... tongue.gif

Bref, le rôle primordial d'un modérateur étant d'éviter le hors-sujet, on va s'arrêter là, hein, parce que ça fait deux posts HS. godgrace.gif