Posté le 20/10/2015 13:04
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
Citer : Posté le 09/11/2015 22:51 | #
Tu n'as pas le droit d'encadrer comme ça un nombre
Il faut ajouter le mot-clé "And" (Optn, F6, F6, F5, F1) entre les deux : Si E est supérieur à 1 et si E est inférieur à 20
1≤E And E≤20⇒List 2[1]+1→List 2[1]
1≤E And E≤20⇒Locate 5,5,"+1 Potion 20PV"
21≤E And E≤35⇒List 2[2]+1→List 2[2]
21≤E And E≤35⇒Locate 5,5,"+1 Potion 20PV"
...
Citer : Posté le 10/11/2015 18:13 | #
le problème est que même si E est compris entre 21 et 35 il va considérer que la condition de lignes 2 et 3 est remplie alors qu'elle ne l'est pas.
Pour la petite explication, l'interpréteur va substituer le résultat comme il traiterait l'associativité de l'addition : A + B + C est compris comme étant (A + B) + C.
Ici, il en va de même. La condition est comprise comme (1 ≤ E) ≤ 20, et il se trouve que (1 ≤ E) est une expression booléenne dont la valeur numérique est définie comme 1 si la condition est remplie et 0 sinon.
Dans les deux cas, le tests global est validé, d'où les problèmes que tu as rencontrés.
Citer : Posté le 21/11/2015 17:03 | #
grâce à votre aide j'ai presque fini mon moteur de combat et je voulais procéder à quelques modifications niveau listes-matrices: je voulais transférer certaines de mes valeurs dans les matrice afin que le programme soit plus compréhensible, chose que j'ai donc faite mais maintenant il me faut changer les valeurs dans les programmes et pour cela il faudrait que je visualise tout le programme. Et donc est ce qu'il ne serai pas possible de l'ouvrir avec notepad++ par exemple
Citer : Posté le 21/11/2015 17:15 | #
Tu peux l'ouvrir avec FA-124. Notepad ? Non. C'est du bytecode.
Citer : Posté le 01/12/2015 19:06 | #
Bon à force de bosser sur ce RPG je me rend compte qu'il y a encore certaines choses que je ne comprend pas ou que je ne maitrise pas (et aussi parce que mon code n'est probablement pas au point). Je vais donc faire une pause au niveau de ce projet ci, je suis entrain de faire une série de 3 mini jeux que je vais probablement publier dans la semaine (je pense qu'il vaut mieux commencer petit avant de faire de gros projets).
En espérant que vous pourrez m'aider à les améliorer...
Et afin de les finaliser j'aurai besoin de faire une sorte de chrono qui s'exécute en même temps que le programme de jeu. Aussi je me demandai s'il était possible d’exécuter 2 programmes en même temps, 2 lignes en même temps (même si je pense que ce n'est pas possible...) ou si vous avez une autre solution..
Citer : Posté le 05/12/2015 16:16 | #
Non, ce n'est pas possible. Un chrono ce n'est techniquement pas réalisable à moins de compter régulièrement à l'intérieur de chaque boucle... bref, c'est irrégulier si ça fonctionne.
Citer : Posté le 05/12/2015 16:53 | #
Le seul programme Basic, qui à ma connaissance, arrive à faire une gestion correcte du temps réel, c'est l'excellent StarCraft de Totoyo. Mais c'est hyper complexe à mettre en place, et lui-même n'a pas fini son jeu…
http://www.planet-casio.com/Fr/forums/topic9371-1-Starcraft-2-alpha-1--Graph-35+USB-75-85-95---Basic-.html
Citer : Posté le 29/06/2016 14:33 | #
Bon après de nombreux mois j'ai remis le projet sur la table mais le but plus de créer un moteur de jeu, je donnerai plus de détails si certains sont intéressés mais le but est de partir d'un truc hyper simple et de l'améliorer au fur et a mesure pour voir jusqu’où je peux aller.
le problème est que j'ai réussi a motiver un ami pour faire ce projet mais c'est assez compliquer de travailler dessus a deux donc je me demandais si vous ne connaissez pas une forge libre par hasard (je ne peut pas utiliser la forge du site mon projet est trop ridicule donc si vous avez une idée n'hésitez pas à m'en faire part)
Citer : Posté le 29/06/2016 14:40 | #
Je pense que ça ne dérangera pas si tu utilise la forge Casio, elle est là pour ça, non?
Citer : Posté le 29/06/2016 14:55 | #
Tu peux utiliser la forge de Planète Casio pour ton projet, elle est là pour ça. Cependant en Basic ça va être dommage (juste les fichiers g1m/g2m). Tu pourrais peut-être utiliser le Blang d'Intelligide ? Ça serait intéressant
Citer : Posté le 29/06/2016 16:28 | #
Je viens de jeter un coup d'oeil au projet mais avec mon talent naturel de compréhension je n'ai pas du tout compris de quoi il s'agissait
@Lephenixnoir je pense que de toute façon se sera du basic puisque je débute tout juste dans la prog donc... pour te donner un aperçu de mon niveau je ne connais que le basic comme langage (si on peut appeler ça comme ça )
Citer : Posté le 29/06/2016 16:34 | #
Intelligide bosse sur un logiciel appelé Blang qui transforme du « texte Basic » de l'ordinateur vers un fichier g1m. En gros ça te permettrait d'écrire du texte sur l'ordi, et nous on pourrait voir le code en allant sur le GitLab !
Citer : Posté le 29/06/2016 17:01 | #
effectivement ça peut être plus intéressant de travailler comme ça et le logiciel est fonctionnel ? si oui un lien de téléchargement ?
Citer : Posté le 29/06/2016 17:03 | #
Faut voir où en est Intelligide. Je crois que le code est sur le GitLab justement
Citer : Posté le 30/06/2016 17:14 | #
je voulais vous demander votre avis sur le bout de programme qui me permet de dessiner les maps
While Z=2
0→A
0→D
Lbl 1
Do
D+1→D
A+1→A
List 25[A]=10000⇒Return
LpWhile List 25[A]≠1000
0→E
Dsz D
[green]//si on trace un point[/green]
While D=1
1→Mat E[List 25[A-1],List 26[A-1]]
0→D
WhileEnd
[green]//si on trace une ligne[/green]
While D=2
If List 25[A-1]=List 25[A-2]
Then List 25[A-1]→E:
26→B
Else List 26[A-1]→F:
25→B
IfEnd
For List B[A-2]→C To List B[A-1]
If B=26
Then C→F
Else C→E
IfEnd
1→Mat E[E,F]
Next
0→D
WhileEnd
0→Z
WhileEnd
[green]//dessiner en fonction des valeurs de la matrice[/green]
For 1→F To 7
For 1→E To 21
Mat E[E,F]=1⇒Locate E,F,"O"
Mat E[E,F]=2⇒Locate E,F,"θ"
Next
Next
Goto 1
Le problème est que le code est très lent mais il est pratique car il me permet de dessiner ce que je veux et voir de faire un éditeur de maps, donc si qqn a une idée pour augment sa rapidité je prend
Citer : Posté le 01/07/2016 18:08 | #
On en parle ici ça sera mieux
Alors sur ton algo il y a un tas de trucs qui ne servent à rien :ent aux yeux
1→Mat E[List 25[A-1],List 26[A-1]]
0→D
WhileEnd
While D=2
...
0->D
Citer : Posté le 01/07/2016 22:49 | #
Je comprend, en fait je ne pense pas que ce soit très conventionnel mais au niveau de la lecture du code je trouve que c'est plus lisible avec une boucle While c'est tout
après j'avais vu pour le Dsz mais comme D n'est jamais égal à 0 normalement c'est bon
Après c'est le reste du code (surtout le While D=2) je n'arrive pas à faire un truc rapide et fonctionnel mais bon à force de faire des essais je vais bien trouver une solution qui fonctionne
En tout cas merci de ta réponse ça fait plaisir
Citer : Posté le 02/07/2016 11:45 | #
D+1→D
A+1→A
List 25[A]=10000⇒Return
LpWhile List 25[A]≠1000
Je ne comprends pas très bien le but de cette boucle.
Aussi y a-t-il des optimisations possibles rien qu'ici, je te montre ce que je ferais :
Isz D
Isz A
// Pas de problème si D et A ne retombent pas sur 0
List 25[A=E4⇒Return
LpWhile List 25[A≠E3
Je n'ai pas la prétention d'avoir optimisé au mieux ce bout de code, mais il y a des petits réflexes à acquérir !
Autrement, NineStar a déjà soulevé le problème de confusion entre while et if. Cela n'est pas du tout la même chose !
While D=1
1→Mat E[List 25[A-1],List 26[A-1]]
0→D
WhileEnd
Dans ta matrice, si je comprends bien, 1 donne "O" et 2 donne "θ". Tu peux réécrire ce bout de code ainsi :
Then 1→Mat E[List 25[A-1],List 26[A-1
Ifend
//Mais ce n'est pas tout, voici en une ligne :
D=1⇒1→Mat E[List25[A-1],List 26[A-1
ça semble plus propre, non ? Tu vas pas me dire que c'est mieux en While ? D'autant plus que dans ta boucle While, tu effectuais deux tâches : tu assignais une valeur à une case (sous vérification d'une condition) ET tu assignais à D la valeur 0 (tâche inutile et donc chronophage). Ici, tu n'en effectues plus qu'une.
While D=2
If List 25[A-1]=List 25[A-2]
Then[b] List 25[A-1]→E:[/b]
26→B
Else [b]List 26[A-1]→F:[/b] // ça sert à rien d'attribuer à E et à F des valeurs si tu les changes juste après ^^
25→B
IfEnd
For List B[A-2]→C To List B[A-1]
If B=26
Then [b]C→F[/b]
Else [b]C→E[/b] // F et E contenaient respectivement List 26 et 25 [A-1] !
IfEnd
1→Mat E[E,F]
Next
0→D // NineStar a déjà fait la remarque, du coup.
WhileEnd
Si ton code est lent, c'est en partie parce que tu lui fais faire des tâches supplémentaires. Pour aller aux States depuis la France, tu passes par l'Océan Atlantique ou l'Océan Pacifique ?
Je te montre ce que je ferais pour optimiser ce code.
Then 25+(List 25[A-1=List 25[A-2→B
//Ici, (List 25[A-1=List 25[A-2]) est une valeur booléenne qui prend la valeur 1 si vraie et 0 si fausse.
For List B[A-2→C To List B[A-1 //j'efface les parenthèses et crochets inutiles
If B=26
Then C→F
Else C→E
IfEnd
1→Mat E[E,F
Next
IfEnd
Je me doute que ce n'est pas évident pour toi, mais plus tu prêteras attention à cela, plus tu seras en mesure de réutiliser ces petites optimisations qui pourront te faire gagner de la place et aussi un peu de vitesse. Tu peux comparer les codes optimisé et non optimisé en terme de vitesse, il devrait y avoir une différence J'espère t'avoir aidé, en tous les cas.
Bonne journée à toi, preux aventurier du Basic !
Citer : Posté le 10/07/2016 17:16 | #
merci beaucoup pour ton aide je n'y serai jamais arrivé seul je pense
En tout cas il y a effectivement une énorme différence au niveau vitesse et taille du programme.
Il faut vraiment que j'apprenne à faire ce genre d'optimisation et amélioration du code.
En tout cas encore merci et bonne chance pour ton projet de RPG en basic ça a l'air absolument énorme
Citer : Posté le 10/07/2016 18:48 | #
Ce genre de petites astuces s’acquièrent avec la pratique ! N'hésite pas à lire tous les cours sur le basic casio du forum !
Regarde donc ! Super tuto
J'y ai appris beaucoup de choses, il y a certainement une quantité importante de fonctions dont tu n'as peut-être jamais entendu parler, même !
En tout cas encore merci et bonne chance pour ton projet de RPG en basic ça a l'air absolument énorme
Oh, merci beaucoup ! En ce moment, j'avance pas mal, je viens tout juste de produire la boîte de dialogue !
Citer : Posté le 11/07/2016 10:34 | #
C'est effectivement ce que je vais faire, pour le tuto je l'avais déjà vu mais c'était il y a quelque mois, il y a des choses que j'ai oubliées ou que je n'arrive pas à mettre en pratique dans mes programmes donc je pense que ça ne pourra être que bénéfique d'y refaire un tour
En tout cas merci encore pour ton aide