Posté le 05/05/2018 14:54
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 247 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
Citer : Posté le 05/05/2018 14:59 | #
Ouaip, les matrices sont très adaptées aux maps 2D.
Je te suggère de lire ce tutoriel : https://www.planet-casio.com/Fr/programmation/matrices.php
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 05/05/2018 15:06 | #
Merci beaucoup
Je l'ai déjà lu mais je n'arrrive pas à comprendre le rapport avec la création de map ... tu pourrais m'expliquer plus précisément comment ça marche stp ?
Citer : Posté le 05/05/2018 16:06 | #
Les maps 2D type Pokémon sont faites de cellules (tiles) carrées arrangées en grille. Chaque case de la matrice représente alors une tile, le numéro indiquant diverses informations (ça, ça dépend des jeux).
Citer : Posté le 05/05/2018 16:24 | #
D'accord
et comment il faut faire pour associer un "block" à un chiffre ?
et le jeu sait il que je ne peux pas franchir le block ou il faut que je remette des limites manuellement ?
Citer : Posté le 05/05/2018 16:30 | #
C'est toi qui codes. La matrice te donne un espace 2D où tu peux mettre des chiffres, rien de plus. Il n'y a pas de notion de limites. Il n'y a pas de notion d'herbe ou de maison ; il y a des chiffres. Et si tu demandes une case en-dehors de la matrice, une erreur se produit.
À partir de là, tu peux élaborer.
Comment associer un bloc à un chiffre ? C'est toi qui décides. Une possibilité, c'est :
1 = Arbre
2 = Porte de maison
3 = Toit de maison
etc
Mais c'est toi qui choisis. Tu peux faire complètement autre chose et décider, par convention que ce sera :
√2 = Porte de maison
42 = Toit de maison
Mais ça sera pas très pratique à manipuler. Comment sait-on si l'on peut franchir le bloc ? Eh bien, encore une fois, c'est toi qui décides ce que tu mets dans ton jeu. Avec mon premier encodage on ne peut franchir que le rien (on ne peut pas traverser ni les arbres, ni les portes, ni les toits), donc pour savoir si j'ai le droit de traverser un bloc il suffit que je teste s'il est égal à 0.
Supposons que j'ai stocké ma map dans la matrice A et que je voudrais savoir si je peux accéder à la case x=3, y=2. Ça donnerait quelque chose comme :
Then "On peut passer"
Else "On ne peut pas"
EndIf
Je sais que c'est une idée difficile à appréhender, mais la matrice te donne juste un espace de stockage. Tu peux y mettre des données. Mais c'est à doit de décider de ton encodage, c'est-à-dire comment tu représentes chaque objet et quelle signification cela a.
Citer : Posté le 05/05/2018 17:03 | #
et est ce que tu pourrais coder un exemple concret (j'en demande beaucoup je me rends compte) avec 0 pour rien 1 pour block ? parce que lorsque j'applique ce que tu m'as dis dans la première partie de ta réponse il y a une erreur, et donc rien de s'affiche
Citer : Posté le 05/05/2018 17:42 | # | Fichier joint
Comment ça rien ne s'affiche ? Ta map ne va pas s'afficher toute seule...
Voilà un exemple en fichier joint. C'est du mode texte. Je n'ai pas commenté le code pour que ça reste un exercice pour toi, mais si tu doutes demande et je serai plus précis.
Citer : Posté le 05/05/2018 18:04 | #
j'ai essayé de comprendre mais c'est vraiment ca que tu voulais m'envoyer, parce que là je ne comprends rien ...
je t'envoies ce que j'ai trouvé dans le fichier :
si c'est vraiment cela donne moi quelques indications pour que ca reste un exercie comme tu as dis
Citer : Posté le 05/05/2018 18:06 | #
Il faut ouvrir ce fichier avec FA-124 pour le transférer sur ta calculatrice, regarde ce tutoriel : https://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?showid=16
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 05/05/2018 18:24 | #
Et j'irai plus loin, il faut le lancer sur ta calculatrice puis le lire sur ta calculatrice.
Citer : Posté le 05/05/2018 21:35 | #
Super merci beaucoup j'ai compris juste PourQuoi mettre MAT A[Y,X] et pas MAT A[X,Y] ?
Citer : Posté le 05/05/2018 21:38 | #
Parce que dans une matrice, on note la ligne en premier et la colonne en deuxième. C'est hérité des maths.
J'aurais pu mettre Mat A[X,Y] mais il aurait fallu la stocker « dans l'autre sens » pour ça. Si tu vas dans le menu RUN/MAT et que tu regardes les contenus de la matrice A dans l'onglet MAT, tu verras que ça représente la map en vrai. Je voulais que la matrice soit dans le même sens que l'écran et je dois donc écrire dans l'ordre Y,X.
À l'inverse tu vois que Locate fonctionne bien en X,Y. C'est un peu le bordel en fait.
Citer : Posté le 05/05/2018 22:11 | #
Ok merci de ne pas avoir abandonné parce que j'ai mis du temps à comprendre
Citer : Posté le 05/05/2018 22:13 | #
Si la séparation entre les données (la matrice) et l'utilisation que tu décides d'en faire (le jeu) est claire pour toi, alors tout est bon !
Citer : Posté le 06/05/2018 15:30 | #
En fait le coup du [Y,X] on s'en fout : si tu stockes en [X,Y] (et que tu t'y tiens) tu auras pas de problème. C'est juste que, si tu veux afficher ta matrice à l'aide de l'éditeur intégré (par exemple "Mat A◢") les axes seront inversés, mais sinon ça pose aucun problème (et je te conseille même de faire ça, ça t'évitera de te gourer entre les coordonnées).
Ecrivez vos programmes basic sur PC avec BIDE