Ta description ne devrait pas ressembler à un sapin de noël nomdidiou è_é 
 
De nombreuses améliorations sont possibles au niveau du code   (mais ça reste un code relativement propre). 
 
Lbl 3 
Menu "LABYRINTHE", "Nouvelle partie", 2, "Règles", 0 
Lbl 0 
"Je vous invite a lirela description sur   planete casio pour   plus de details"◢ 
Goto 3  
- L'usage des gotos est à restreindre, il faudrait remplacer Lbl 3/Goto 3 par un While 1/WhileEnd. 
- Il faudrait mettre un ClrText, car quand je veux lire les règles elles sont toujours affichées en dehors du menu. 
- Mettre les règles dans le programme améliorerait son ergonomie : quand je suis en cours de maths, je peux pas aller voir la description   
 
SketchDot F-Line 106, 63, 95, 63 
SketchDot F-Line 95, 52, 106, 52 
SketchDot F-Line 95, 52, 95, 63 
SketchDot F-Line 106, 63, 106, 52  
- Il faudrait remplacer ça par un multi drawstat : fonction Graph(X,Y)=(. 
 
P = 1 Or P = 2 Or P = 5 Or P = 9 => F-Line T, Q, R, Q 
P = 2 Or P = 3 Or P = 6 Or P = 10 => F-Line R, Q, R, S 
P = 3 Or P = 4 Or P = 5 Or P = 7 => F-Line T, S, R, S 
P = 1 Or P = 4 Or P = 6 Or P = 8 => F-Line T, Q, T, S  
- Il existe un moyen de savoir si un nombre est contenu dans une liste. Dans ton cas, P = 1 Or P = 2 Or P = 5 Or P = 9 est remplacé par Max(P={1,2,5,9}). 
Une opération booléenne (ici, une égalité) renvoie 0 (faux) ou 1 (vrai). Lorsqu'un opérateur est défini pour {variable, liste} (ce qui est le cas de presque tous les opérateurs de calculs, à l'exception de la fraction), il exécute l'opération pour chaque membre de la liste, et retourne une liste avec le résultat. Par exemple, 2*{1,2,3,4} renvoie {2,4,6,8}. 
Dans ton cas, si P=2, ça renverra {0, 1, 0, 0} et Max() renverra alors 1, ce qui est considéré comme vrai (comme tout autre valeur non nulle). 
Ca fait une erreur syntaxe parce que casio est pas foutu de faire une syntaxe correcte, du coup une solution alternative serait de faire {1,2,5,9}=P : Max(List Ans) => F-Line .... 
- C'est difficile à croire, mais un Graph(X,Y) est plus rapide qu'une F-Line. 
- Tu utilises ces instructions assez souvent, il faudrait les mettre dans un sous programme (non pas pour la rapidité, mais surtout pour la propreté, si tu dois changer les coordonnées tu n'auras pas à le faire 3-4 fois). 
Ces remarques sont aussi valables pour Mat A[M, N] = 1 Or Mat A[M, N] = 2 Or Mat A[M, N] = 5 Or Mat A[M, N] = 9 => F-Line L, I, J, I 
Mat A[M, N] = 2 Or Mat A[M, N] = 3 Or Mat A[M, N] = 6 Or Mat A[M, N] = 10 => F-Line J, I, J, K 
Mat A[M, N] = 3 Or Mat A[M, N] = 4 Or Mat A[M, N] = 5 Or Mat A[M, N] = 7 => F-Line L, K, J, K 
Mat A[M, N] = 1 Or Mat A[M, N] = 4 Or Mat A[M, N] = 6 Or Mat A[M, N] = 8 => F-Line L, I, L, K  
 
If P = 1 And (GetKey = 27 Or GetKey = 38) :Then 
    2 -> P 
    1 -> Y 
    Do : LpWhile GetKey 
IfEnd 
If P = 2 And (GetKey = 27 Or GetKey = 38) :Then 
    3 -> P 
    1 -> Y 
    Do : LpWhile GetKey 
IfEnd 
If P = 3 And (GetKey = 27 Or GetKey = 38) :Then 
    4 -> P 
    1 -> Y 
    Do : LpWhile GetKey 
IfEnd 
If P = 4 And (GetKey = 27 Or GetKey = 38) :Then 
    1 -> P 
    1 -> Y 
    Do : LpWhile GetKey 
IfEnd 
...  
On voit que les instructions 1 -> Y et Do : LpWhile GetKey sont communes à chaque condition, il faudrait donc les mettre après chaque condition, et également faire un ¤GetKey¤ tout seul au début, puis vérifier les valeurs de ¤Ans¤. Ca sécurisera la valeur du GetKey, par exemple ici je peux déclencher plusieurs conditions à la fois, ce qui pourrait provoquer des bugs. 
 
Mat A[6, M] -> Mat A[7, M 
Mat A[5, M] -> Mat A[6, M 
Mat A[4, M] -> Mat A[5, M 
Mat A[3, M] -> Mat A[4, M 
Mat A[2, M] -> Mat A[3, M 
Mat A[1, M] -> Mat A[2, M  
Une boucle for serait plus appropriée (par contre aucune idée de si elle serait plus rapide). 
 
If θ = 7 And O = 7 :Then 
    Cls 
    Text 30, 50, "Egalite!"◢ 
    ClrText 
    Stop 
IfEnd 
If θ = 7 :Then 
    Cls 
    Text 30, 20, "Le joueur un a gagne!"◢ 
    ClrText 
    Stop 
IfEnd 
If O = 7 :Then 
    Cls 
    Text 30, 20, "Le joueur deux a gagne!"◢ 
    ClrText 
    Stop 
IfEnd  
peut être remplacé par 
If θ = 7 Or O = 7 :Then 
    Cls 
    θ != 7 => Text 30, 20, "Le joueur deux a gagne!"◢ 
    O != 7 => Text 30, 20, "Le joueur un a gagne!"◢ 
    θ = 7 And O = 7 => Text 30, 50, "Egalite!"◢ 
    ClrText 
    Stop 
IfEnd  
 
Sinon pour le jeu il est sympa   |