Informatique Optimisation de code

Clen

pessimiste repenti
22 Février 2016
1 507
286
167
21
Lille
(comme peu d'entre vous connaissent le langage de ma calculette, j'ai "traduit" les fonctions vers un truc compréhensible par n'importe qui (sauf toi kévin qui ignore ce qu'est une variable))

Je suis en train d'exploiter les faibles capacités de ma calculatrice programmable afin de créer un RPG.
Bref, j'aimerais avoir un minimum d'optimisation mais j'ignore comment la mémoire est consommée par les fonctions et j'aimerais avoir quelques éclaircissements sur deux points :

(1) Je ne sais pas trop comment expliquer donc je vous donne les deux exemples et vous me dites lequel est le meilleur. ;-)
P.S. : On part du principe que le joueur ne peux pas aller dans deux directions en même temps
Si le joueur appuie sur ^
Alors Programmer "Déplacement vers le haut"
Sinon Si le joueur appuie sur v

Alors Programmer "Déplacement vers le bas"
Sinon Si le joueur appuie sur >

Alors Programmer "Déplacement vers la droite"
[etc...]
FinDuSi
FinDuSi
FinDuSi
Si le joueur appuie sur ^
Alors Programmer "Déplacement vers le haut"
FinDuSi
Si le joueur appuie sur v
Alors Programmer "Déplacement vers le bas"
FinDuSi
Si le joueur appuie sur >
Alors Programmer "Déplacement vers la droite"
FinDuSi



(2)
Je souhaite utiliser dans plusieurs lignes une valeur qui est dans une matrice.
Faudrait-il extraire la valeur de la matrice à chaque fois ou créer une nouvelle variable ?
Pratique : J'hésite entre :
La variable A prends la valeur contenue dans la 1ere matrice aux coordonnées [X,Y].
Si A=0
Alors Programmer "SITUATION 1"
Sinon Si la variable A est égale à 1

Alors Programmer "SITUATION 2"
Sinon Si la variable A est égale à 2
[etc...]
FinDuSi
et
Si la valeur contenue dans la 1ere matrice aux coordonnées [X,Y] est égale à 0
Alors Programmer "SITUATION 1"
Sinon Si la valeur contenue dans la 1ere matrice aux coordonnées [X,Y] est égale à 1

Alors Programmer "SITUATION 2"
Sinon Si la valeur contenue dans la 1ere matrice aux coordonnées [X,Y] est égale à 2
[etc...]
FinDuSi
Je suppose qu'extraire une valeur d'une matrice est plus coûteux qu'un simple appel de variable, mais est-ce que ça vaut le coup de créer une variable exprès ?


Merci d'avance de votre support !
 

Le minaw

Désobfuscateur à propergol
25 Juillet 2015
881
254
197
In a material world
github.com
Déjà indente pas tes blocs n'importe comment ça veut dire que tu comprend pas comment ils marchent (surtout le premier)

(1) : Le premier programme est mieux. La différence entre les deux ramène à la compréhension de ce qu'est, en java par exemple, un opérateur à court circuit, qu'on systématise presque. Il a deux avantages :
1-> Si tu le mets dans une boucle, tu es sûr qu'une seule action est effectuée par boucle (ça n'a l'air de rien mais dans une main loop ça change tout)
2-> Il est plus efficace, car dès qu'une condition est validée, les blocs sinon qui suivent ne seront pas évalués.
il pose toutefois un soucis: son temps d'execution varie suivant la situation (ça ne devrait pas être un soucis dans un programme bien fait).

(2): Le second est surement mieux. Je vais pas rentrer dans le détail de comment fonctionne une mémoire mais dans le cas de ta calculatrice, il est très probable que la lecture du coef est un surcout très très faible comparé à la lecture de variable (ou alors ils se sont vraiment mal démerdés quand ils ont codé leur interpréteur)
 
  • J'aime
Reactions: Neph