Poster un nouveau sujet Poster une réponse
ERR:MEMOIRE dans un programme
Auteur Message
aleo
Invité
Posté le : Mer 19 Mai 2010, 22:19   Citer 

J'ai fais un programme, en graph, pour un petit jeu de plate-forme.
J'utilise une boucle infinie while.
le probleme, c'est que plus on joue, plus le programme ralentie, jusqu'au moment fatal (après 115 bouclage) ou le ERR:MEMOIRE apparait.
Comment faire pour eviter cette erreur ?

info sur ce que contient la boucle :
-code touche pour le mouvement
-test avec le pxl-test pour le deplacement



Merci

Aleo

  Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 19 Mai 2010, 22:38   Citer 

Peut-être que les goto/label ralentissent moins, on ne sais jamais, si while fait du récursif...

Quel genre de variables sont utilisées ? Et sont elles réutilisées au fur et à mesure ?

----------------------
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 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Jeu 20 Mai 2010, 19:30   Citer 

Essaye de supprimer au maximum les If/Then/else de ton programme.
Idem pour les labels qu'il faudrais remplacer par des boucles.
Sinon, tu peut essayer d'utiliser des sous programmes.

Sangohan38

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
aleo
Invité
Posté le : Jeu 20 Mai 2010, 21:39   Citer 

C'est pareil avec le goto. Si mes souvenir sont bon, les etiquettes font15x bouclage avant de craché.
les commandes sont allégées un max.
je quitte la boucle de déplacement pour les sauts (jeu de plateforme) et la pesanteur.
Reel appercus de la boucle :
j'éteinds le pxl jouer
code touche
dépacement :(if k=... et A!=1 et A!=51 et pxl-test-(...)!=1:x+1->crazy.gif fois 3 pour le depacement droite gauche + dessente accelerer[!= : different]
La commande de saut :if k =...:goto...
je ralume le pxl
puis la pesanteur : goto...
end

voila en gros
plus la boucle "boucle" (-__-"), plus elle devient lente.

  Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 21 Mai 2010, 19:11   Citer 

Je crains que la longueur du If soit la principale cause.
Et comme a dit sangohan38, il est préférable d'utiliser des sous-programmes au lieu de goto extérieures. (par exemple ta gestion de la pesanteur)

----------------------
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 
 
aleo
Invité
Posté le : Dim 23 Mai 2010, 17:32   Citer 

J'ai supprimer la commande pour tomber plus vite. J'ai gagné un peu de temps avant le moment du crash.
J'utiliserai un sous programme, et vous dirai si sa marche

Merci !

  Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mar 25 Mai 2010, 22:16   Citer 

sur le mode d'emploi de la calculette, errMémoire dans un prog est signalé quand une boucle ne rencontre pas de fin.
par exemple, un if qui mettrait trop longtemps à rencontrer son End bloquerait.
c'est également valable si tu as:


Code

LblA
patatipatata

While 0
patatipatata
If truc=machin:Goto A
patatapatati
End




Le while ne renconte pas le End dans le cas ou truc=machin.

c'est valable aussi quand tu remplace le Goto par l'éxécution d'un autre prog.

 Adresse email Haut de page Bas de page 
 
aleo
Invité
Posté le : Mer 26 Mai 2010, 17:04   Citer 

Donc il faut que j'évite les boucles infini, et en faire deux pour le déplacement ?
C'est l'un des solutions qu'il faut que j'essaye.

J'ai remarqué aussi que plus je fait des programmes, plus moins la boucle "boucle".

Aleo

  Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Jeu 27 Mai 2010, 19:36   Citer 


Citer
plus moins la boucle "boucle".


Euh, elle boucle plus où moins ta boucle?
Si c'est moins, c'est normal vu que tes progs prennent de la mémoire et que cette même mémoire est utilisée par tes programmes.
Pour essayer d'alléger, vu que tu utilise des pxl-test, met les dans des variables pour tes conditions.

Sangohan38

 Adresse email Haut de page Bas de page 
 
aleo
Invité
Posté le : Jeu 27 Mai 2010, 22:16   Citer 

Je tien a m'excuser... Le "plus moin" était de trop.

Sangohan, je ne voie pas trop comment faire, vue que je suis tombé sur le pxl-test en bidouillant...

merci

  Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Ven 28 Mai 2010, 22:49   Citer 

Si tu utilise plusieur fois le même pxl-test, stock le dans une variable.
Exemple:

Code
If pxl-test(0,0)=1:1->A
If pxl-test(0,0)=0:2->A

devient:
pxl-test(0,0)->B
If B=1:1->A
If B=0:2->A



En gros, tu remplace juste le pxl-test(0,0,) par une variable.

Sangohan38

 Adresse email Haut de page Bas de page 
 
aleo
Invité
Posté le : Dim 30 Mai 2010, 21:48   Citer 

Sangohan, jai un autre solution, qui me fais gagner du bouclage.
Ma démarche :
Au lieu déteindre un pixel au début et de le rallumer a la fin de boucle, je me suis de faire tout en condition.
J'ai gagné ainssi beaucoup de "bouclage" ^^

  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