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.

Forum Casio - Autres questions


Index du Forum » Autres questions » Question :E
Math680 Hors ligne Membre Points: 455 Défis: 5 Message

Question :E

Posté le 07/11/2018 20:15

Salut à tous,
alors le sujet,
en vue de mon projet personnel de programmation : ZeldaGAME
Je souhaiterai que un programme en basic casio puisse analyser s’il y a un caractère à un endroit donné pour pouvoir par la suite pouvoir stocker un 1 dans une matrice

Mais malheureusement je ne sais pas comment faire... même si je pense que vous aviez compris

Bon merci d’avance les casionotes


Précédente 1, 2, 3, 4
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 10/11/2018 17:11 | #


Je vais regarder t'inquiète
J'ai du travail tu sais ?
ouais ouais
Math680 Hors ligne Membre Points: 455 Défis: 5 Message

Citer : Posté le 10/11/2018 17:12 | #


Ah mais je n’ai pas dit que j’étais pressé
“Il y a bien moins de difficultés à résoudre un problème qu’à le poser.”

Vous êtes fan de « The legend of Zelda ocarina of Time »,si c’est le cas allez voir ZeldaGAME
mon projet de jeu basic casio
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 10/11/2018 17:33 | #


J'ai regardé, mais pas testé (j'arrive toujours pas à importer via l'émulateur), mais j'ai des remarques à faire :
Pourquoi ce n'est que pour le premier If où tu appliques PxlTest ? Il faut le faire pour chaque directions !
Les Black sont-ils vraiment indispensables (vrai question, j'en sais rien) ?
Pour ceci :
40 -> J


While J != 0
    Black Circle 200, 114, J
    J - 10 -> J
WhileEnd

Retire tout ces retours à la ligne, quelle perte de place !
Et aussi, pour ce genre de tâche For est plus adapté que While
Voici le code amélioré :
For 40 -> J To 10 Step -10
    Black Circle 200, 114, J
Next


C'est bien plus court et lisible désormais
Je pense que ton code de déplacement est mal optimisé :
While 1
    0 -> C //Inutile
    Do
        GetKey -> C
    LpWhile C = 0
    If C = 28 And Not PxlTest(J + 4, K) And Not PxlTest(J + 4, K + 5) :Then
        
        Text J, K, "  " //Encore
        J - 10 -> J
        Black Text J, K, "O" //Encore
    IfEnd
    
    If C = 38 :Then
        
        Text J, K, "  " //Encore
        K - 10 -> K
        Black Text J, K, "O" //Encore
    IfEnd
    If C = 37 :Then
        
        Text J, K, "  " //Encore
        J + 10 -> J
        Black Text J, K, "O" //Encore
    IfEnd
    If C = 27 :Then
        
        Text J, K, "  " //Encore
        K + 10 -> K
        Black Text J, K, "O" //Encore
    IfEnd
WhileEnd


Voici donc un exemple d'optimisation :
While 1
    J->E //On sauvegarde les coordonnées au début de la boucle
    K->F
    Do
        GetKey -> C
    LpWhile C = 0
    If C = 28 And Not PxlTest(J + 4, K) And Not PxlTest(J + 4, K + 5) :Then
        J - 10 -> J
    IfEnd
    If C = 38 :Then
        K - 10 -> K
    IfEnd
    If C = 37 :Then
        J + 10 -> J
    IfEnd
    If C = 27 :Then
        K + 10 -> K
    IfEnd
    If J != E Or K != F:Then //Si les coordonnées ont changées, on actualise
        Text E, F, "  " //On efface le personnage à son ancienne position
        Black Text J, K, "O" //On le redessine à sa nouvelle
WhileEnd

Notez bien que le code ne fonctionne toujours pas, je vais pas tout faire non plus...
Pars sur ce que j'ai dit, des PxlTest dans une boucle
ouais ouais
Math680 Hors ligne Membre Points: 455 Défis: 5 Message

Citer : Posté le 10/11/2018 18:52 | #


Le code que tu as optimisé est ULTRA bien,
Pour le noir c’est parce que c’est la seule couleur qui peut passer(pour une salle)
Pour les retours à la ligne je ne les ai pas dans mon code,
pour les *3 je peut donner en plus un code Python sur le fichier 2(téléchargement)
Je vais modifier ce programme et voir ce qu’il en ai,
En attendant merci à toi pour ton aide
(Qui sait, peut être que cela va fonctionner ?!)

Ajouté le 10/11/2018 à 19:05 :
Avec ta technique on peut encore plus optimiser le code en m’étant des Jumps on lieu du if complet !

Ajouté le 10/11/2018 à 19:06 :
À bah non il y a plusieurs conditions
“Il y a bien moins de difficultés à résoudre un problème qu’à le poser.”

Vous êtes fan de « The legend of Zelda ocarina of Time »,si c’est le cas allez voir ZeldaGAME
mon projet de jeu basic casio
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 10/11/2018 19:06 | #


Math680 a écrit :
Avec ta technique on peut encore plus optimiser le code en m’étant des Jumps on lieu du if complet !

Hum... Non évite
Les Lbl Goto c'est trop instable.
ouais ouais
Math680 Hors ligne Membre Points: 455 Défis: 5 Message

Citer : Posté le 10/11/2018 19:09 | #


Ah si on peut j’ai testé

Ajouté le 10/11/2018 à 19:20 :
Par contre c’est bien , mais l’autre problème reste irrésolu

Ajouté le 10/11/2018 à 19:22 :
C’est à dire instable ?

Ajouté le 10/11/2018 à 19:28 :
Pour le pixel test quand on descend je dois faire :
J-4-(longueur en pixel du caractère est-ce ça?


Ajouté le 10/11/2018 à 19:29 :
Et pareil pour les côtés mais en largeur.
“Il y a bien moins de difficultés à résoudre un problème qu’à le poser.”

Vous êtes fan de « The legend of Zelda ocarina of Time »,si c’est le cas allez voir ZeldaGAME
mon projet de jeu basic casio
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 10/11/2018 19:32 | #


Math680 a écrit :
Pour le pixel test quand on descend je dois faire :
J-4-(longueur en pixel du caractère est-ce ça?


Ajouté le 10/11/2018 à 19:29 :
Et pareil pour les côtés mais en largeur.

Comment ça ? Oui il faut partir de tes coordonnées, ajouter la largeur + 1 pour éviter des erreurs bêtes et tester.
Mais je ne comprend pas pourquoi tu as mis le -4

Ajouté le 10/11/2018 à 19:33 :
Et pour les Lbl :
La référence Basic Casio a écrit :
Les labels sont à éviter autant que possible, ils sont lents et peuvent provoquer des bugs dans l'exécution du programme.

ouais ouais
Math680 Hors ligne Membre Points: 455 Défis: 5 Message

Citer : Posté le 10/11/2018 20:24 | #


Pour ne pas rater plein de murs vu que l’on avance de 10 par 10 pour une fiabilité obtimal je mettrai une boucle for,
Pour la première question c’est parce que les coordonnées de base sont en haut à gauche tiens un schéma :


faire un O au coordonnées 10 10



Dessin du O (sprite)
KXXXXXXXXXXXX
XXXXQQQQQXXX
XXQQXXXXXQQXX
PXQQXXXXXQQXX
XQQXXXXXXXQQX
XQQXXXXXXXQQX
XQQXXXXXXXQQX
XQQXXXXXXXQQX
XXQQXXXXXQQXX
XXQQXXXXXQQXX
XXXXQQQQQXXXX
XXXXXXXXXXXXXX
XXXXXXXXXXXXXX
XXXXXXXXXXXXXX
XXXXXXXXXXXXXX



J


P : point qui sera analysé si c’est mal fait
J : point qui devrai être analysé
Q point noir
X: point blanc


X coordonnées 10,10

Si on fait :
analyse le point 4 pixels en dessous des coordonnées de O(10,10)
On tombe sur P se n’est pas voulus

C’est pour ça qu’il faut faire
analyse le point 4 pixels en dessous des coordonnées du point et 4 pixels en dessous du nombre de caractères dans le sprite d’un O(15 je crois)

Et là on arrive sur J c’eslt ce qu’il faut


Tu comprends ???
Ça fait un gros bout d’un coup


Ajouté le 10/11/2018 à 20:27 :
Mince ça tu savais déjà
Pfff j’ai mis une demi heure

“Il y a bien moins de difficultés à résoudre un problème qu’à le poser.”

Vous êtes fan de « The legend of Zelda ocarina of Time »,si c’est le cas allez voir ZeldaGAME
mon projet de jeu basic casio
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 10/11/2018 21:29 | #


Merci j'ai compris
Mais pourquoi -4 et pas -1 ou -20 par exemple ?
ouais ouais
Math680 Hors ligne Membre Points: 455 Défis: 5 Message

Citer : Posté le 11/11/2018 12:24 | #


S’ai Pas -1 ça rate tout les murs et -20 ça sert à rien.
Bon en fait sa marche pour de gauche a droite(mais pas super bien sa saute parfois des murs, mais ça marche pas pour monter et descendre.
“Il y a bien moins de difficultés à résoudre un problème qu’à le poser.”

Vous êtes fan de « The legend of Zelda ocarina of Time »,si c’est le cas allez voir ZeldaGAME
mon projet de jeu basic casio
Précédente 1, 2, 3, 4

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 259 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