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 |