Forums Casio - Projets de programmation

Index du Forum | Projets de programmation | Projet de RPG... en BASIC !
Drak
Hors ligne
Membre
Niveau: Débutant
Points: 478
Défis: 24
Message
Posté le 06/07/2016 23:44

Projet de RPG... en BASIC ! :

Que la plèbe tremble face à mon pouvoir nouveau !!!

Bref. J'y songe depuis un bon bout de temps déjà, et je décide d'officialiser mon projet de RPG en Basic. Pour ceux qui connaissent déjà Eon the Dragon, je ne compte pas faire un jeu sur cette base, comme Cake me l'a déjà suggéré en ne refaisant que les map de ce jeu.

En réalité, je projette de concevoir un RPG en recommençant absolument tout de zéro. En errant sur ce forum, j'ai amassé une quantité satisfaisante de savoirs nouveaux en ce qui concerne le basic ! Toutes les techniques et les jeux que j'ai entraperçu ou étudié sur ce forum ont fait germer tout un tas de petites idées en moi !

Je vous expose le plan : l'idée n'est qu'à l'état embryonnaire, mais je compte la faire évoluer par débats et expositions d'idées. Pour l'histoire, le scénario, je n'ai pas de problème. J'ai l'imagination qu'il faut pour pondre des trucs farfelus. Ce dont j'ai besoin, c'est d'approfondir le système du jeu et tenter de construire un programme cohérent, très optimisé et performant. Procédons à tout cela par étape, je relèverai chacune de mes interrogations par la suite.

La map :
Résolu
Cliquer pour enrouler
C'est ce qui me fait me poser le plus de questions. Voici ce que j'ai décidé : sur une picture sera enregistrée une sidebar qui sera visible pareillement sur le mapmonde et en combat. J'ai pour ambition d'adopter un système de tiles pour générer les maps (qui seront statiques, comme le fameux Zelda PC de Remiweb, et pas de map scrolling). Pour commencer, je projette de concevoir un système de sauvegarde provisoire des maps. Voici un schéma pourri fait à l'arrache :

Lorsque le joueur est sur la map 1, le décor de cette map est enregistrée en picture 1 (par exemple). Arrivé sur la map 2, celle-ci est enregistrée en picture 2. Sur la map 3, elle est enregistrée en picture 3. Lorsque le joueur veut retourner sur la map 2, la picture 2 est directement affichée plutôt que de la redessiner. En passant sur la map 4, la map 1 sur la picture 1 est effacée pour laisser place à la map 4. Ainsi, le personnage peut se ballader entre les map 2, 3 et 4 sans temps de chargement !


Ensuite :
Résolu
Cliquer pour enrouler
je vais rencontrer de nombreuses problématiques concernant le dessin d'une map. Pour une map, je vais rentrer dans une matrice les ID de chaque case. Admettons que j'ai un programme "lecteur de matrice" qui dessine chaque case en fonction de l'ID. Il est évident que je vais essayer de dessiner d'une traite tous les tiles identiques avant de passer aux tiles suivants, plutôt que de faire :
For 1→A To 6
For 1→B To 11
Mat A[A;B]=1⇒{1,2,3→List 1
etc.
Next
Next
Drawstat

C'est-à-dire lire chaque case, une à une, même si elle est vide, pour dessiner une tile. après avoir entré dans la liste les coordonnées. Bref. C'est long, sale et un peu bulldozer.
Un génie de Naheulbeuk a écrit :
Baston !

J'avais prévu de faire entrer toutes les données chiffrées dans une chaîne (Str 1) plutôt que dans une matrice(qui est d'ailleurs lourde) pour pouvoir exploiter les fonctions StrSrch, StrMid, etc. Il est tout à fait possible de passer d'une chaîne à une expression numérique, donc ce point ne pose pas problème. Qu'en pensez-vous ? L'idée peut-elle être exploitée ou est-elle incohérente ?


Les tiles en eux-mêmes :
Résolu
Cliquer pour enrouler
Je cherche le bonne taille de tiles à prendre. J'avais pensé à utiliser des tiles de 10*10. Chacune de mes maps feraient alors 6*11 cases. Y a-t-il une taille préférable à 10*10 ? Qu'en pensez-vous ? Je ne sais quoi en penser. Je vais rencontrer un autre problème : le stockage de données. Avec les listes, je me demandais si une seule liste avec des coordonnées complexes est plus légère que deux listes pour les abscisses et ordonnées séparées. La différence est-elle notable ? Si oui, ça m'arrangerait bien pour ce que je pensais faire :
Il serait possible que j'exploite la technique Augment( pour dessiner tout d'une traite avec le Graph(X ; Y)=. Cette technique étant très gourmande en mémoire sur l'instant, je pourrais effectuer l'opération plusieurs fois. Mais ça serait assez confortable de pouvoir mettre :
Dim List 1→Tθmax
Graph(X;Y)=(ReP List 1[T];ImP List 1[T

J'aimerais votre avis là-dessus !


Le moteur de combat :
Alors là, j'ai pas mal réfléchi. Sur le modèle de fonctionnement Poule/Renard/Épervier, ou Feu/Eau/Plante dans Pokémon, j'ai l'intention de créer trois types d'attaque : Puissance , Dextérité et Vitesse.
Le personnage aura trois attaques pour chacun de ces types. Donc une animation différente pour chacun d'entre elle. Il maîtrisera en plus une capacité de soin, et peut-être une capacité secrète.
Il n'y aura pas de niveau à proprement dire : Selon les attaques qu'on emploie, la maîtrise dans la branche correspondante augmente et améliore les capacités du personnage : Force, Défense, Nombre de coups, précision, Esquive, etc.
Bon. Le souci, c'est que je vais devoir à dessiner des monstres et risque d'être limité sur ce point là.

Le personnage est en fait personnalisable. Au début du jeu, vous pourrez choisir une arme et une coiffe (lunettes de soleil, chapeau en pointe...) La machine génère alors sur plusieurs listes trois positions du personnage : une statique, une en tenant l'arme en l'air, une troisième en donnant le coup. Pour cela, je fais tourner l'arme, comme je l'ai évoqué dans ce topic. ce point précis est résolu. C'est grâce à ses trois dessins pré-enregistrés que je ferai les animations. Une question se pose : comment faire des animations pour les monstres potables et peu spacio-phages ?
Voici à quoi ils ressemblent !

Et, sur la map, ça donne ça :



Pour le menu :
Pas encore d'idée, si ce n'est un truc enregistré sur une autre picture qui sera beau graphiquement parlant. On y verra l'état du personnage et son niveau de maîtrise dans chaque branche.

Pour l'interaction avec des pnj :
Résolu
Cliquer pour enrouler
Je projette de concevoir un sous-programme "lecteur de texte", si je puis dire. Sur la map, le programme dessinera une boîte de dialogue dans laquelle s'écriront les paroles d personnage. Pour ce point, je compte beaucoup m'inspirer des travaux de Remiweb sur son Zelda PC. J'ai trouvé ce point absolument remarquable et incroyablement bien fait.


Voici la tronche du projet. J'aimerais vraiment avoir vos avis, savoir ce que vous en pensez, avoir de vos précieux conseils et surtout engager le débat pour progresser. Je vous remercie d'avance, et vous remercie aussi de m'avoir lu jusque là.






Fichier joint



Remiweb
Hors ligne
Membre de CreativeCalc
Niveau: Confirmé
Points: 1040
Défis: 32
Message
Dernier message de la page précédente :Posté le 07/07/2016 23:30 |
Pas bête la commande, a toi de tester par contre

C'est top avec le fleuve !
C'est pas trop long à charger avec toutes ces tiles ?
----------------------------------
Tweaks : ||||| ||||



Pages: Précédente | 1, 2, 3, 4, 5 | Suivante

Drak
Hors ligne
Membre
Niveau: Débutant
Points: 478
Défis: 24
Message
Citer : Posté le 07/07/2016 23:35 | #
J'ai mesuré 3.5 secondes de chargement je crois, avec le fleuve. Pour la première map, pas plus de 1.5 secondes avant que le dessin ne s'effectue. Il faut peut-être que je trouve une astuce pour "masquer" ce temps de chargement... Je pense par exemple à Resident Evil sur Playstation 1, où les temps de chargement étaient masqués par une animation où une porte était ouverte, des marches gravies, etc.

Donc, plutôt que de mettre une écran blanc, j'aimerais trouver un "truc" à mettre pour rendre ce temps moins "vide".
----------------------------------
Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !

Mon projet Basic : Un Grand RPG vous attend ! et sa version Demo ici !
Best Quote Ever
Un grand merci à Cake.
Drak
Hors ligne
Membre
Niveau: Débutant
Points: 478
Défis: 24
Message
Citer : Posté le 09/07/2016 11:05 | # | Fichier joint
Alors voici de nouveaux screens ! J'ai refait le tile de l'arbre parce qu'il était absolument moche et prenait 15 points alors que le nouveau en prend 2 fois moins et est bien plus classe. Bref : dans l'ordre, nous avons :
1 - Une petite forêt bien sympa en mode papier peint (on peut pas circuler dedans mais on s'en fiche)
2 - Un petit bout de terre au milieu d'un lac... sympa, hein ?
3 - une zone montagneuse
4 - une zone montagneuse plus montagneuse
5 - tous mes tiles !



Je suis alors confronté à une nouvelle question. Pour mettre au point les déplacements du héros, il faut déjà ... un héros (et potentiellement des pnj). Sauf que ce héros étant un bonhomme en bâton, je ne sais absolument pas comment je pourrais le dessiner sur la map. Si je me contente d'une simple rond, à quoi ressembleront les pnj ? ça ne me va pas vraiment. Les tiles font 10*10 je le rappelle. Une idée ?
----------------------------------
Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !

Mon projet Basic : Un Grand RPG vous attend ! et sa version Demo ici !
Best Quote Ever
Un grand merci à Cake.
Lephenixnoir
Hors ligne
Administrateur
Niveau: Confirmé
Points: 11077
Défis: 130
Message
Citer : Posté le 09/07/2016 11:09 | #
Pas mal. Le coup de l'île au milieu du lac c'est vraiment cool. Bien joué pour gérer ça avec ce tileset.

Pour les sprites j'en ai fait des « corrects » en 7x7, donc en 10x10 c'est tout à fait faisable. Après faut voir le nombre de traits... tu peux dessiner un stickman sinon.
----------------------------------
Watch me, as I build my empire with my own hands.
Drak
Hors ligne
Membre
Niveau: Débutant
Points: 478
Défis: 24
Message
Citer : Posté le 09/07/2016 11:19 | #
Je vais faire des essais. Je vous montrerai le résultat... :/

Ce que je veux, c'est pouvoir avoir une tête suffisamment grosse pour pouvoir dessiner des signes distinctifs sur les tronches des pnj... Genre une barbe, des lunettes, un regard qui tue...
----------------------------------
Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !

Mon projet Basic : Un Grand RPG vous attend ! et sa version Demo ici !
Best Quote Ever
Un grand merci à Cake.
Fife86
Hors ligne
Membre
Niveau: Confirmé
Points: 830
Défis: 0
Message
Citer : Posté le 09/07/2016 11:24 | #
Drak, tu utilise quoi pour dessiner les maps ? Quels outils ?
----------------------------------
It's Show Time !!!
Mes Jeux :
- Street Fighter : Pour les accrocs du free-fight.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".


< Le recoin du C-Engine >
Drak
Hors ligne
Membre
Niveau: Débutant
Points: 478
Défis: 24
Message
Citer : Posté le 09/07/2016 11:36 | #
Fife, je te renvoie sur les pages un et deux de ce topic ! Tu y trouveras tout, même le code.

Pour faire court, j'emploie les Str (chaînes de caractères) qui contiennent les ID de chaque tiles pour une map.

Par exemple, le code de la map avec les arbres, c'est "F-F-F-F-F.....F-"→Str 2.
F est l'ID du tile de l'arbre et le caractère "-" ne correspond à rien, donc donne du vide.
----------------------------------
Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !

Mon projet Basic : Un Grand RPG vous attend ! et sa version Demo ici !
Best Quote Ever
Un grand merci à Cake.
Fife86
Hors ligne
Membre
Niveau: Confirmé
Points: 830
Défis: 0
Message
Citer : Posté le 09/07/2016 12:15 | #
Je ne parle pas de ça, je parle de comment tu place les tiles, pour ma part j'utilise le logiciel Tiled qui permet de dessiner des maps avec un tileset puis de générer les maps sout différents formats. C'est très utile pour voir le rendu final de la map en même temps que tu l'édite.

http://www.mapeditor.org/
----------------------------------
It's Show Time !!!
Mes Jeux :
- Street Fighter : Pour les accrocs du free-fight.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".


< Le recoin du C-Engine >
Lephenixnoir
Hors ligne
Administrateur
Niveau: Confirmé
Points: 11077
Défis: 130
Message
Citer : Posté le 09/07/2016 13:56 | #
Drak, voici quelques sprites de TLT qui tiennent basiquement en 10x10. Tu peux t'inspirer de la forme, ou simplement les adapter s'ils te plaisent

----------------------------------
Watch me, as I build my empire with my own hands.
Remiweb
Hors ligne
Membre de CreativeCalc
Niveau: Confirmé
Points: 1040
Défis: 32
Message
Citer : Posté le 09/07/2016 14:52 | # | Fichier joint
Joli les screens, ça fait envie

Drak a écrit :
Sauf que ce héros étant un bonhomme en bâton, je ne sais absolument pas comment je pourrais le dessiner sur la map. Si je me contente d'une simple rond, à quoi ressembleront les pnj ? ça ne me va pas vraiment. Les tiles font 10*10 je le rappelle. Une idée ?

Je ne comprend pas trop le problème ?

Pour mon zelda j'ai fait un sprite en 10*10 comme tout le reste et je le dessinais en super drawstat :
----------------------------------
Tweaks : ||||| ||||
Drak
Hors ligne
Membre
Niveau: Débutant
Points: 478
Défis: 24
Message
Citer : Posté le 10/07/2016 15:07 | #
@ Fife : Mais vous êtes des mordus des logiciels ici ! J'utilise le papier, moi Je dessine tous mes tiles sur un papier millimétré et place les ID des tiles sur un quadrillage de 11*6 cases. Ainsi, je peux recopier la chaîne de caractère qui code la map sans problem. j'ai aussi essayé de codé un générateur de map sur python mais... bref.

@Everybody : J'ai finalement eu une illumination. Je ne savais pas comment représenter mon stickman : de face, en perspective, vu de dessus ? J'ai eu l'idée d'un personnage super amusant et original, je vais faire quelques dessins. Du coup, mon problème est réglé.

Autrement, Remiweb a mis le doigt sur une problématique :
Remiweb a écrit :
Sinon ça y'est Drak, j'ai retrouvé pourquoi j'avais pas utilisé les Str pour stocker les maps
C'était pour pouvoir rajouter des propriétés aux tiles. Par exemple les coordonnées d'un TP, le contenu d'un coffre, l'ID du texte à charger pour un panneau...


J'ai déjà conçu le système de collision. Il consiste à comparer l'ID de la case que le joueur a l'intention de visiter et la chaîne "5-". Ainsi, toute case dont l'ID est comprise entre 0 et 5 est traversable. Voici le code (la map est en BG-Pict) :
1→U~V // Coordonnées en ligne et colonne du personnage
0→Tθmin
Lbl θ
1→Tθmax
Graph(X,Y)=( [i]Multidrawstat en fonction de U et de V[/i]
While 1
Getkey→W
W⇒Break
WhileEnd
StrCmp(StrMid(Str 2,U-(W=38)+(W=27)+11(V-1-(W=37)+[W=28)),1),"5-"
Ans=1⇒Goto θ
W=27⇒Isz U
W=38⇒Dsz U
W=28⇒Isz V
W=37⇒Dsz V
Goto θ
----------------------------------
Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !

Mon projet Basic : Un Grand RPG vous attend ! et sa version Demo ici !
Best Quote Ever
Un grand merci à Cake.
Drak
Hors ligne
Membre
Niveau: Débutant
Points: 478
Défis: 24
Message
Citer : Posté le 10/07/2016 19:29 | # | Fichier joint
Je viens de concevoir ma boîte de dialogue. Je poste à la vitesse de la lumière !
Bref. Pour ceux que ça intéresse, voici le code :
Cliquez pour découvrir
Cliquez pour recouvrir
Dans Str 5 est compris le message. "θ" est un saut de ligne et "r" une pause où il faut appuyer sur une touche pour poursuivre.

For 0→B To 1
Text 50+6B,6,"                          "
Text 43+B,5,"          "
Next
"Drak"→Str 4 //Nom du mec qui parle
(Des F-line)
Text 45,23-2StrLen(Str 4),Str 4 // On centre le nom.
0→C
Do
StrSrc(Str 5,"θ")→A
For 2→B To A
Text 51+6C,7,StrLeft(Str 5,B-1)
Next
Not C→C
If StrSrc(Str 5,"r",A)=A+1
Then While 1
Getkey⇒Break
WhileEnd
Isz A
IfEnd
[url=http://www.planet-casio.com/Fr/reference_basic_casio/commande_basic.php?fonc=136]StrShift(Str 5,A→Str 5[/url]
If Not C
Then For 0→B to 1
Text 50+6B,6,"                                 "
Next:IfEnd
LpWhile StrSrc(Str 5,"r"


Sinon, voici ce que donne le résultat !
----------------------------------
Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !

Mon projet Basic : Un Grand RPG vous attend ! et sa version Demo ici !
Best Quote Ever
Un grand merci à Cake.
Hackcell
En ligne
Membre
Niveau: Intermédiaire
Points: 597
Défis: 4
Message
Citer : Posté le 10/07/2016 23:44 | #
Sinon, cette boîte de dialogue ressemble à celle dans le Zelda basic de Remiweb, suffisait de lui demander le code, non?
----------------------------------
I only need black tea and sweets to survive...
But no matter what I eat, I need love to live...
So please, don't leave me alone...
Zezombye
Hors ligne
Rédacteur
Niveau: Confirmé
Points: 988
Défis: 9
Message
Citer : Posté le 10/07/2016 23:52 | #
Drak, pourquoi tu utilises des F-line pour la boîte de dialogue, utilise un super drawstat o_o
Franchement après avoir découvert le super drawstat il n'y a plus aucune excuse pour utiliser des F-line
----------------------------------
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Dark storm
Hors ligne
Administrateur
Niveau: Aucun
Points: 10134
Défis: 170
Message
Citer : Posté le 11/07/2016 00:18 | #
+1, d'autant plus que tu peux hardcoder le super drawstats en mode GraphXY({1, 2, 3}, {4, 5, 6})…
----------------------------------
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
Drak
Hors ligne
Membre
Niveau: Débutant
Points: 478
Défis: 24
Message
Citer : Posté le 11/07/2016 11:08 | #
effectivement, je n'y avais pas pensé ! Une vieille habitude, sûrement ! Les F-line sont simples, alors, tout de suite...

Hackcell a écrit :
Sinon, cette boîte de dialogue ressemble à celle dans le Zelda basic de Remiweb, suffisait de lui demander le code, non?


Hors de question, et puis quoi encore ? Je ne vais sûrement pas reprendre un code d'une autre programme pour mon jeu, je préfère autant chercher moi-même ! De plus, il ne fonctionne pas de la même manière. Et comme c'est mon propre code, je sais très bien comment il fonctionne.

Ajouté le 17/07/2016 à 16:04 :
Hey les gens ! Je viens de dénicher une superbe potentialité des maps hardcodées en Str !!!
Si coder autrement une map avec une matrice permet de donner des propriétés aux tiles, j'ai découvert ce que je pouvais faire avec les Str :

En faisant des calculs approximatifs, en ayant quelque chose comme 14*14 maps différentes, soit 196, et, mettons 71 octets par map, (66 caractères pour 66 cases, avec " "→ Str 2, on atteint rapidement les 14 000 octets et des poussières rien que pour stocker tout cela ! J'ai alors mis au point un ingénieux système de compression/décompression de chaîne dont je suis particulièrement fier. Je vous le présente :

Mettons qu'on ait une map codée par cette chaîne :
"00000000000200000000020000000000020000000002FF0000000FF00000R00000"→Str 2

Vous remarquerez qu'on a, sur 66 cases, 57 "0" qui correspondent à des cases vides, soit 86.36 % de caractères qui "ne servent à rien" ! J'ai alors eu l'idée de remplacer :
"[red]FF[/red][blue]0000000[/blue][green]FF[/green]"
par "[red]FF[/red][blue]►7[/blue][green]FF[/green]"

le "►7" signifiant "7 zéros à la suite".

J'ai alors écrit le décompresseur qui a pour but de remplacer tous les "►_" par une suite de 0 dans la chaîne. Voici :
"123456789ABCDEFGH..."→Str 3 //défini à priori
Do
StrSrc(Str 2,"►")→A //Str 2 contient la chaîne codant la map, compressée.
A⇒[red]StrLeft(Str 2,A-1)[/red]+[blue]StrLeft("00000000000",StrSrc(Str 3,StrMid(Str 2,A+1,1)))[/blue]+[green]StrMid(Str 2,A+2)[/green]→Str 2
LpWhile A

Ainsi, la chaîne "►B2►92►B2►92FF►7FF►5R►5" (23 caractères)
donne, une fois décompressée, "00000000000200000000020000000000020000000002FF0000000FF00000R00000" (66 caractères)
Le décompresseur ne prend que 84 caractère et la décompression ne prend qu'un dixième de seconde !
Donc, sur 196 maps, avec en moyenne 70% de cases vides, il y a, potentiellement, jusqu'à 9000 octets à économiser ! Héhé, je vais pouvoir faire un monde encore plus vaste ! 8)

Bref, les calculs nous montre que c'est hyper rentable !

----------------------------------
Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !

Mon projet Basic : Un Grand RPG vous attend ! et sa version Demo ici !
Best Quote Ever
Un grand merci à Cake.
Lephenixnoir
Hors ligne
Administrateur
Niveau: Confirmé
Points: 11077
Défis: 130
Message
Citer : Posté le 17/07/2016 16:33 | #
Un peu comme du RLE quoi. Pas mal. Regarde si tu peux pas utiliser un caractère d'un octet (à moins que ► n'en soit déjà un, mais j'en doute).

Après je ne suis pas sûr mais si tu faisais :
StrSrc(Str 2,"►")→A
While A
StrLeft(...)+StrLeft(...)+StrMid(...)→Str 2
StrSrc(Str 2,"►")→A
WhileEnd

Tu gagnerais une condition par tour, non ? Sur des grandes maps c'est peut-être intéressant... ?
----------------------------------
Watch me, as I build my empire with my own hands.
Zezombye
Hors ligne
Rédacteur
Niveau: Confirmé
Points: 988
Défis: 9
Message
Citer : Posté le 17/07/2016 16:36 | #
Nope la flèche n'est pas un caractère d'un octet essaie d'utiliser la flèche normale ->.
Lephé c'est mieux de faire un do/while pour ça non ?

Sinon c'est assez dommage que StrCmp ne retourne pas la différence en ASCII des deux caractères, ça t'aurait permis d'interpréter la valeur numérique sans passer par le Str 3.
----------------------------------
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Lephenixnoir
Hors ligne
Administrateur
Niveau: Confirmé
Points: 11077
Défis: 130
Message
Citer : Posté le 17/07/2016 16:42 | #
StrCmp() peut pas trop retourner la différence vu que le charset est pas de l'ascii. Tu es bien placé pour savoir ce que le caractère « + » vaut.

Zezombye, nan. Il faut initialiser quand même. Mais pendant que j'y pense on doit pouvoir faire quelque chose comme :
While StrSrc(Str 2,"►")
StrLeft(...)+StrLeft(...)+StrMid(...)→Str 2
WhileEnd

En utilisant Ans ?
----------------------------------
Watch me, as I build my empire with my own hands.
Zezombye
Hors ligne
Rédacteur
Niveau: Confirmé
Points: 988
Défis: 9
Message
Citer : Posté le 17/07/2016 16:49 | #
Il pourrait quand même retourner la différence vu que chaque caractère a une valeur (et qu'il compare ces valeurs) d'ailleurs je me demande, est ce que pour StrCmp 0x7F45 < 0xE1 < 0xF753 ?

Sinon Ans est assez risqué comme variable :/ avant le StrLeft il faudrait mettre un inline If, et peut être que le résultat de ce If est stockée dans la variable Ans (donc Ans vaudrait 0 ou 1), faudrait tester. Ou sinon on peut pas faire "While StrSrc(Str 2, "->") -> A" ?
----------------------------------
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Drak
Hors ligne
Membre
Niveau: Débutant
Points: 478
Défis: 24
Message
Citer : Posté le 17/07/2016 16:53 | #
Zezombye a écrit :
est ce que pour StrCmp 0x7F45 < 0xE1 < 0xF753 ?

Oui, comme les chaînes commencent par 0x, elle compare le 3 ème caractère. On a 7<E<F.

Je vais faire des tests pour tout cela. Mais je n'aime pas beaucoup la variable Ans.

Ajouté le 17/07/2016 à 17:04 :
@Lephé : Bon, visiblement...
While StrSrc(Str 2,"►")
StrLeft(...)+StrLeft(...)+StrMid(...)→Str 2
WhileEnd

Ne fonctionne pas...
----------------------------------
Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !

Mon projet Basic : Un Grand RPG vous attend ! et sa version Demo ici !
Best Quote Ever
Un grand merci à Cake.

Pages: Précédente | 1, 2, 3, 4, 5 | Suivante

Index du Forum | Projets de programmation | Projet de RPG... en BASIC !

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2018 | Il y a 85 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Casio Education Casiopeia CodeWalrus

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite
Les fichiers, programmes et autres publications présents sur Planète Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd