Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.
Menu
Calculatrices
Graph 35 à 100
Graph 25+Pro/25+E/25+E II
Graph 35+USB/75(+E)/85/95 SD
Graph 100(+)
Classpad 300/330(+)
fx-CG 10/20 (Prizm)
Classpad 400(+E)
Graph 90+E
fx-92+ SC
Liens
¤ Transférer un programme sur
sa calculatrice

¤ Vous cherchez une fonction ?
Jeux >> Graph 35 à 100 >> Réflexion >> Labyrinthe Jeu
Labyrinthe Jeu
Version : 1.1 Taille : 7492 octets Ajouté le : 2017-08-21 01:44 Modifié le : 2017-08-21 17:54
Auteur et posteur :
RegalcrameHors ligneMembrePoints: 131 Défis: 0 Message
Planète Casio - Jeu Casio de reflexion - Labyrinthe Jeu - regalcrame - Calculatrices
Nombre de visites sur cette page : 4397
Score au progrank : 47
Note actuelle : 9/10 noté 1 fois
Vous devez être connecté(e) pour noter (inscription).
1248 téléchargements | Soumettre un test


Description :

/!\ Si vous êtes dans les quatre premiers à avoir téléchargé il y a une erreur qui a été corrigée depuis! Quand le joueur deux gagnait il fallait attendre le tour d'après pour que ça considère qu'il a gagné, ça a été corrigé

Hey! Voici l\'authentique jeu de plateau labyrinthe de Ravensburger reproduit à l'identique pour calculatrice!

Mouais... y'a sûrement une couille dans le potage

Bon, ok, à quelques exeptions près:
-On ne peut jouer qu'à 2 joueurs (ouais, tu me diras qu'à quatre autour d'une calculatte c'est pas très pratique)
-Les trésors sont remplacés par des chiffres et ils ne s'affichent que deux à la fois (parce que des tout petits graphismes ça rend pas hyper bien sur calculatrice)
-eeeeeeet bah c'est tout

Ah oui aussi pour des soucis de place je n'ai pas pu rendre le truc extrêmement intuitif mais j'ai fait du mieux possible

Et là les trois quarts des gens vont dire
MAIS C'EST QUOI LE BUT DIANTRE?
Alors déjà calmez-vous
En gros vous êtes deux joueurs dans deux coins d'un labyrinthe et votre but est d'aller chercher un maximum de trésors (représentés par des chiffres) dans ce labyrinthe, Le premier joueur à avoir récupéré 7 de ses trésors (des "1" pour le joueur un et des "2" pour le joueur deux) à gagné la partie
Remaque:Les trésors ne s'affichent pas tous à la fois, ils s'affiche au fur et à masure qu'on les récupère
MAIS!
Car il y a un mais
Le labyrinthe est composé de cases qui sont soit des lignes droites, soit des virages, soit les deux (cherchez labyrinthe jeu ravensburger sur google image vous comprendrez) et ces cases doivent être déplacées à chaque tour ce qui modifie en permanence le labyrinthe.
MAIS COMMENT ON LES DÉPLACE CES CASES?
Et bien il y a une case en plus à l'extérieur du jeu qui permet de "pousser" toute une ligne/colonne et faire ressortir une autre case de l'autre côté qui servira au joueur d'après pour pousser une autre ligne colonne.
Remarques:
-Certaines cases sont immobiles
-si un trésor se retrouve sur une case qui se déplace il se déplacera avec et si il se retrouve sorti du jeu il sera remis avec la case sur laquelle il était
-C'est pareil pour les joueurs sauf qu'ils ne peuvent pas être sortis, si vous essayez de sortir un joueur du jeu le déplacement sera refusé

Du coup en gros les joueurs jouent chacun leur tour et à chaque tour ils déplacent une ligne ou une colonne et ils se déplacent(ou non) sur le labyrinthe
Remarque:Si le joueur 1 (qui commence la partie) récupère ses 7 trésors, alors le second joueur aura un tour pour jouer et s'il termine il y aura alors égalité


Note sur 10 Commentaire Date de notation
9Super cool et bien réalisé, BRAVOLe 09.10.2017 à 18:11

Commentaires :


RegalcrameHors ligneMembrePoints: 131 Défis: 0 Message
Posté le 21-08-2017 à 15:05 | #
J'attend avec impatience vos retours et conseils! c'est la première fois que j'utilise les matrices et c'est le premier programme en mode graphique que je poste sur planete casio (à côté je bosse sur un rpg depuis plusieurs mois, j'ai hâte de vous le présenter )
ZezombyeHors ligneRédacteurPoints: 1756 Défis: 13 Message
Posté le 21-08-2017 à 20:11 | #
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
RegalcrameHors ligneMembrePoints: 131 Défis: 0 Message
Posté le 21-08-2017 à 21:32 | #
Merci beaucoup Zezombye pour tout ces conseils! Je suis impressionné que tu aies analysé mon programme en entier pour en faire une "correction" aussi détaillée et claire.
Je t'en remercie, tu m'as appris plein de trucs! Je vais penser à tout ça dans tous mes prochains programmes!

Je vais faire toutes les modifs!
DragonbleuHors ligneMembrePoints: 466 Défis: 7 Message
Posté le 21-08-2017 à 21:35 | #
Cette description m'a arraché les yeux.
2 couleurs, c'est très bien, 3, ça peut être tolérable, 4 c'est chaud, mais alors 5... En plus avec des tailles de police différentes...
RegalcrameHors ligneMembrePoints: 131 Défis: 0 Message
Posté le 21-08-2017 à 21:50 | #
Je pense que je vais la changer ma description...
DragonbleuHors ligneMembrePoints: 466 Défis: 7 Message
Posté le 21-08-2017 à 21:52 | #
BONNE IDEE !

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 86 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd