Calculator the Game, disponible sur Android et iOS, est un jeu de "casse-tête"/calcul fort sympathique, et je me suis dit :
"Un jeu sur les calculatrices jouable sur calculatrice ? "
Le jeu est toujours en développement, je suis en train de faire le moteur de jeu (en Basic) FAIT, je m'attaquerai ensuite à la recopie ou création de niveaux. Par préférence et aussi parce que Text rend trop petit je le ferai en mode texte à coups de Locates.
Voici un aperçu du jeu actuellement :
.old
.old
Le jeu n'est vraiment pas jouable pour le moment, je me servirai de ce topic comme d'un suivi de progression (c'est plus propre que ce que j'avais fait pour Useless).
Je crée le topic maintenant pour demander votre avis sur l'interface et ce qui est à changer, pour fixer ça et passer à la suite.
Merci d'avance
Je précise que ce jeu est une ADAPTATION du jeu original sous Android, ce qui signifie que j'essaie de rester le plus fidèle possible par rapport au jeu original.
J'y irai petit à petit pour le développement, rien ne m'énerve plus qu'un jeu buggé.
(Un niveau par demi-heure c'est beau mais c'est long)
Lephenixnoir a écrit : Tu peux les mettre dans une Str. Ici je mets des # chaque fois qu'il faut revenir à la ligne et des @ chaque fois qu'il faut attendre que l'utilisateur appuie.
"HI!@My name is#Clicky@Want to#play a game#?@etc"
Après tu peux encoder aussi les textes sur les touches. Le texte est ce qu'il existe de plus compact. Tu peux aussi gagner des octets en ayant { 1,2,3 }→List 1 dans ton programme (11 octets) comparé à fournir la liste dans le g1m (36 octets).
Le code pour lire ça ne devrait pas te prendre plus de 100 octets, ça va être surement 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 !
Bon j'ai un problème
Je ne comprends vraiment pas les fonctions pour les Strings, j'ai donc essayé quelque chose qui pour moi est correct mais ne fonctionne définitivement pas...
Je mets le code, merci d'avance
#Program name: D
#Password: <no password>
10->X
1->Y
"TEST@ARGENT=@POWER"->Str 20
For 1 -> A To StrLen(Str 20)
StrMid(Str 1, A, 1)->Str 19
If Not StrCmp(Str 19,"@"
Then Isz Y
10->X
Else If Not StrCmp(Str 19,"#"
Then A
Else Isz X
Locate X,Y,Str 19
IfEnd
IfEnd
While GetKey
WhileEnd
While Not GetKey
WhileEnd
Next
Ici je n'ai pas encore défini le # (il faudrait déjà que le reste fonctionne ) et les @ représentent le retour à la ligne.
EDIT : L'erreur est se trouve au Locate après le X.
Dans la ligne "StrMid(Str 1, A, 1)->Str 19", que vaut Str 1 ?
Connais tu la fonction StrSrc( ? Je pense que ça te serait utile pour faire une version alternative à ce que tu cherches à faire, en plus rapide.
L'idée est de chercher le premier "@" de ta chaîne 20, de récupérer son index, et de directement récupérer et afficher tous les caractères entre le premier et cet index. Puis tu décale ou supprime ces caractères et tu réitères jusqu'à arriver à la fin de la chaîne.
Dans la ligne "StrMid(Str 1, A, 1)->Str 19", que vaut Str 1 ?
Connais tu la fonction StrSrc( ? Je pense que ça te serait utile pour faire une version alternative à ce que tu cherches à faire, en plus rapide.
L'idée est de chercher le premier "@" de ta chaîne 20, de récupérer son index, et de directement récupérer et afficher tous les caractères entre le premier et cet index. Puis tu décale ou supprime ces caractères et tu réitères jusqu'à arriver à la fin de la chaîne.
Oui effectivement ce serait plus rapide !
Si j'ai bien compris je découperai ma chaîne en quatres parties (avec @ comme séparateur), j'affiche les trois premières et je me sert de la dernière pour l'input ?
Ne0tux a écrit : Voilà un exemple que je viens de tester on calc :
"1234@567@89@0"->Str 1
0->A~B While StrSrc(Str 1, "@") Isz B
StrSrc(Str 1, "@")
StrLeft(Str 1, Ans-1)->Str 2
/* Tu peux mettre ici un algo qui gère "#" en utilisant Str 2 */ Locate A, B, Str 2
StrRight(Str 1, StrLen(Str 1)-Ans)->Str 1 WhileEnd
Je n'ai pas compris ce dont tu parles en écrivant "input".
Pour être franc je n'ai pas trop compris
Input c'est un réflexe du Python, j'attend une entrée.
J'ai testé mon code, il fonctionne c'est juste que comme tu l'as signalé le Str 1 n'existait pas
Du coup je ne sais pas si je le conserve où j'en recode un du style de celui que tu as fait, au risque de ne pas comprendre
En tout cas merci beaucoup Ne0tux
EDIT : tu as modifié ton code pendant que j'écrivais ma réponse
Si ton code actuel fonctionne et que le seul soucis était la Str 1, tu peux le garder ! Après je pense que tu n'as rien à perdre (si ce n'est un peu de temps) à essayer de comprendre ma version qui, je pense, s'exécutera plus vite.
Quelle ligne de mon code te pose problème ?
J'ai fait ce que je décrivais en toute lettre plus haut :
Tant qu'il existe un "@" dans la chaîne Str 1
On augmente le numéro de ligne pour l'affichage
On cherche l'indice du premier "@" dans la chaîne Str 1
On enregistre dans la Str 2 tous les caractères de la Str 1 entre le premier et l'indice obtenu précédemment
On fait ce qu'on veut avec Str 2, pour détecter des "#" ou l'afficher via Locate
On met à jour Str 1 en ne gardant que les caractères à droite du "@" qu'on vient de traiter
Fin du tant que
Ne0tux a écrit : Si ton code actuel fonctionne et que le seul soucis était la Str 1, tu peux le garder ! Après je pense que tu n'as rien à perdre (si ce n'est un peu de temps) à essayer de comprendre ma version qui, je pense, s'exécutera plus vite.
Quelle ligne de mon code te pose problème ?
J'ai fait ce que je décrivais en toute lettre plus haut :
Tant qu'il existe un "@" dans la chaîne Str 1
On augmente le numéro de ligne pour l'affichage
On cherche l'indice du premier "@" dans la chaîne Str 1
On enregistre dans la Str 2 tous les caractères de la Str 1 entre le premier et l'indice obtenu précédemment
On fait ce qu'on veut avec Str 2, pour détecter des "#" ou l'afficher via Locate
On met à jour Str 1 en ne gardant que les caractères à droite du "@" qu'on vient de traiter
Fin du tant que
Avant que tu édites il y avait des "x" à la place d'arobases, et je ne vois pas trop comment gérer le "#" après
Refaire la même opération ?
De toute façon je place les "#" de cette façon pour délimiter la fin de la chaine : "Bonjour@Comment@va ?#Bien"
Après plus rien
Je vois que mon code est lent mais ça fait un petit effet d'affichage stylé je trouve
Ajouté le 08/09/2018 à 13:05 :
OK j'ai modifié mon code ça fonctionne très bien
#Program name: D
#Password: <no password>
10->X
1->Y
Locate 11,1,Str 1
Locate 11,2,Str 1
Locate 11,3,Str 1
For 1 -> A To StrLen(Str 20)
StrMid(Str 20, A, 1)->Str 19
If Not StrCmp(Str 19,"@"
Then Isz Y
10->X
Else If Not StrCmp(Str 19,"#"
Then Locate 9,6,StrRight(Str 20,StrLen(Str 20)-A)
255->A
Else Isz X
Locate X,Y,Str 19
IfEnd
IfEnd
Next
Merci encore Ne0tux, je me suis servi de StrRight( grâce à toi
Oui j'avais mis des "x" quand j'ai programmé sur ma Casio, la flemme d'aller chercher le "@" on calc ! Enfin pas exactement la flemme : j'ai pu tout coder sans regarder l'écran, je sais où sont les fonctions et les touches. Mais je ne sais pas de mémoire où est le "@" dans le menu "CHAR".
Donc oui j'ai modifié a posteriori mes messages pour que ce soit des "@" pour que ça colle à ton utilisation, mais je suis sûr que tu avais saisi que "x" ou "@" c'est pareil.
A quoi te sert le "#" exactement ? Décaler le Locate de vers la droite ? Si c'est juste ça il te suffit de faire comme suit :
"Bonjour@Comment@va ?@#Bien@->Str 1
0->B While StrSrc(Str 1, "@") Isz B
StrSrc(Str 1, "@")->L
StrLeft(Str 1, L-1)->Str 2 Locate1+StrSrc(Str 2, "#"), B, Str 2
StrRight(Str 1, StrLen(Str 1)-L)->Str 1 While GetKey WhileEnd While Not GetKey WhileEnd WhileEnd
Dans cet exemple le "Bien" est décalé de 1 vers la droite et j'ai ajouté "l'input".
Ne0tux a écrit : Oui j'avais mis des "x" quand j'ai programmé sur ma Casio, la flemme d'aller chercher le "@" on calc ! Enfin pas exactement la flemme : j'ai pu tout coder sans regarder l'écran, je sais où sont les fonctions et les touches. Mais je ne sais pas de mémoire où est le "@" dans le menu "CHAR".
Donc oui j'ai modifié a posteriori mes messages pour que ce soit des "@" pour que ça colle à ton utilisation, mais je suis sûr que tu avais saisi que "x" ou "@" c'est pareil.
A quoi te sert le "#" exactement ? Décaler le Locate de vers la droite ? Si c'est juste ça il te suffit de faire comme suit :
"Bonjour@Comment@va ?@#Bien@->Str 1
0->B While StrSrc(Str 1, "@") Isz B
StrSrc(Str 1, "@")->L
StrLeft(Str 1, L-1)->Str 2 Locate1+StrSrc(Str 2, "#"), B, Str 2
StrRight(Str 1, StrLen(Str 1)-L)->Str 1 While GetKey WhileEnd While Not GetKey WhileEnd WhileEnd
Dans cet exemple le "Bien" est décalé de 1 vers la droite et j'ai ajouté "l'input".
Non non je vais bientôt poster le programme mis à jour pour que tu puisses voir
Salut, 2 niveaux en plus (avec les dialogues qui vont avec), j'ai corrigé quelques problèmes d'affichages et j'ai fait ce que LePhénixNoir m'a conseillé grâce à l'aide de Ne0tux : un sous-programme
Maintenant le texte s'affiche à la façon de certains RPG lettre par lettre (c'est volontaire bien sûr )
Le jeu comporte déjà 5 niveaux, je ne sais pas combien je compte en faire, mais ça avance plutôt bien je trouve
La Démo est en fichier joint
Si quelqu'un la teste, merci de me donner votre avis sur l'affichage du texte, le laisser comme ça où le traiter plus rapidement (comme Ne0tux l'avait proposé) et me signaler les bugs éventuels (hormis le NON du tuto déjà connu)
Merci d'avance
KikooDX
Ajouté le 09/09/2018 à 18:30 :
Je viens de voir que le jeu comporte 200 niveaux, je doute que cela puisse tenir en 10Ko
Tu aurais pu agrandir l'écran de l'émulateur pour faire la vidéo !
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 !
Je retourne sur le projet !
J'ai ajouté un niveau (le 6) mais c'est surtout prétexte pour parler de deux choses.
1. Les 3 boutons gauches
Les trois boutons se trouvant à gauche de l'interface du jeu
Aperçu
Aperçu
[ EUX ][ ][ ]
[ EUX ][ ][ ]
[ EUX ][ ][ ]
sont dans le jeu original assignés à trois touches inutiles sur Calc :
La première servait à payer pour voir la solution.
La seconde à voir une pub pour voir la solution (c'est un jeu mobile que voulez-vous )
Le troisième à accéder aux options.
Je n'ai rien assigné à ces trois touches. Ce n'est pas gênant mais bon, si vous avez quelque chose à proposer je pourrais peut-être combler ce vide
2. Niveaux custom
Les niveaux du jeu deviennent assez répétitifs au bout du 15ème, voilà pourquoi je vous demande si vous avez des idées de niveaux à proposer (style chiffre et des lettres), avec 7 commandes max. de disponibles.
Voir mon exemple sur le troisième post.
Bien sûr le nom serait indiqué (haut à droite de l'écran)
Voilà, merci d'avance
Fichier joint : dernière version.
Ajouté le 03/11/2018 à 10:55 :
Bonjour, je pense que je vais recoder le projet entier, utiliser un code tel que l'avait proposé @Ne0tux pour rendre le programme plus rapide (à terme c'est trop long d'attendre que les lettres s'affichent une par une) et un autre sous-programme étant la partie "jeu".
Je l'imagine comme ceci : Dialogues : prend en paramètre une liste. Moteur de jeu : prend un tas de paramètres.
Parce que la façon dont je l'ai conçu ça fait 200/300 octets par niveau, c'est trop pour un jeu de 200 niveaux.
Et à l'occasion je me pose toujours la question de ce que je devrais faire de ces zones inutiles...
Il faut que tu trouves une méthode pour contenir les données / paramètres nécessaires à chaque niveaux de manière efficace. Pour une telle situation, j'aurais utilisé les Str. À voir.
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 !
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/09/2018 15:18 | #
Tu peux les mettre dans une Str. Ici je mets des # chaque fois qu'il faut revenir à la ligne et des @ chaque fois qu'il faut attendre que l'utilisateur appuie.
"HI!@My name is#Clicky@Want to#play a game#?@etc"
Après tu peux encoder aussi les textes sur les touches. Le texte est ce qu'il existe de plus compact. Tu peux aussi gagner des octets en ayant { 1,2,3 }→List 1 dans ton programme (11 octets) comparé à fournir la liste dans le g1m (36 octets).
Mais pour lire ça il faut un sous-programme non ?
Citer : Posté le 05/09/2018 15:21 | #
Bien sûr mais le code de ce sous-programme sera utilisé pour tous les niveaux à la fois. Compte tenu du nombre de niveaux c'est supposé être rentable.
Citer : Posté le 05/09/2018 15:30 | #
Je vais essayer merci
Citer : Posté le 05/09/2018 15:51 | #
Le code pour lire ça ne devrait pas te prendre plus de 100 octets, ça va être surement rentable.
Citer : Posté le 08/09/2018 12:17 | #
Bon j'ai un problème
Je ne comprends vraiment pas les fonctions pour les Strings, j'ai donc essayé quelque chose qui pour moi est correct mais ne fonctionne définitivement pas...
Je mets le code, merci d'avance
#Password: <no password>
10->X
1->Y
"TEST@ARGENT=@POWER"->Str 20
For 1 -> A To StrLen(Str 20)
StrMid(Str 1, A, 1)->Str 19
If Not StrCmp(Str 19,"@"
Then Isz Y
10->X
Else If Not StrCmp(Str 19,"#"
Then A
Else Isz X
Locate X,Y,Str 19
IfEnd
IfEnd
While GetKey
WhileEnd
While Not GetKey
WhileEnd
Next
Ici je n'ai pas encore défini le # (il faudrait déjà que le reste fonctionne ) et les @ représentent le retour à la ligne.
EDIT : L'erreur est se trouve au Locate après le X.
Citer : Posté le 08/09/2018 12:24 | #
Salut Kikoodx !
Dans la ligne "StrMid(Str 1, A, 1)->Str 19", que vaut Str 1 ?
Connais tu la fonction StrSrc( ? Je pense que ça te serait utile pour faire une version alternative à ce que tu cherches à faire, en plus rapide.
L'idée est de chercher le premier "@" de ta chaîne 20, de récupérer son index, et de directement récupérer et afficher tous les caractères entre le premier et cet index. Puis tu décale ou supprime ces caractères et tu réitères jusqu'à arriver à la fin de la chaîne.
La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Citer : Posté le 08/09/2018 12:32 | #
Salut Kikoodx !
Dans la ligne "StrMid(Str 1, A, 1)->Str 19", que vaut Str 1 ?
Connais tu la fonction StrSrc( ? Je pense que ça te serait utile pour faire une version alternative à ce que tu cherches à faire, en plus rapide.
L'idée est de chercher le premier "@" de ta chaîne 20, de récupérer son index, et de directement récupérer et afficher tous les caractères entre le premier et cet index. Puis tu décale ou supprime ces caractères et tu réitères jusqu'à arriver à la fin de la chaîne.
Si j'ai bien compris je découperai ma chaîne en quatres parties (avec @ comme séparateur), j'affiche les trois premières et je me sert de la dernière pour l'input ?
Citer : Posté le 08/09/2018 12:38 | #
Voilà un exemple que je viens de tester on calc :
"1234@567@89@0"->Str 1
0->A~B
While StrSrc(Str 1, "@")
Isz B
StrSrc(Str 1, "@")
StrLeft(Str 1, Ans-1)->Str 2
/* Tu peux mettre ici un algo qui gère "#" en utilisant Str 2*/
Locate A, B, Str 2
StrRight(Str 1, StrLen(Str 1)-Ans)->Str 1
WhileEnd
Je n'ai pas compris ce dont tu parles en écrivant "input".
La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Citer : Posté le 08/09/2018 12:47 | #
Voilà un exemple que je viens de tester on calc :
"1234@567@89@0"->Str 1
0->A~B
While StrSrc(Str 1, "@")
Isz B
StrSrc(Str 1, "@")
StrLeft(Str 1, Ans-1)->Str 2
/* Tu peux mettre ici un algo qui gère "#" en utilisant Str 2 */
Locate A, B, Str 2
StrRight(Str 1, StrLen(Str 1)-Ans)->Str 1
WhileEnd
Je n'ai pas compris ce dont tu parles en écrivant "input".
Pour être franc je n'ai pas trop compris
Input c'est un réflexe du Python, j'attend une entrée.
J'ai testé mon code, il fonctionne c'est juste que comme tu l'as signalé le Str 1 n'existait pas
Du coup je ne sais pas si je le conserve où j'en recode un du style de celui que tu as fait, au risque de ne pas comprendre
En tout cas merci beaucoup Ne0tux
EDIT : tu as modifié ton code pendant que j'écrivais ma réponse
Citer : Posté le 08/09/2018 12:53 | #
Si ton code actuel fonctionne et que le seul soucis était la Str 1, tu peux le garder ! Après je pense que tu n'as rien à perdre (si ce n'est un peu de temps) à essayer de comprendre ma version qui, je pense, s'exécutera plus vite.
Quelle ligne de mon code te pose problème ?
J'ai fait ce que je décrivais en toute lettre plus haut :
Tant qu'il existe un "@" dans la chaîne Str 1
On augmente le numéro de ligne pour l'affichage
On cherche l'indice du premier "@" dans la chaîne Str 1
On enregistre dans la Str 2 tous les caractères de la Str 1 entre le premier et l'indice obtenu précédemment
On fait ce qu'on veut avec Str 2, pour détecter des "#" ou l'afficher via Locate
On met à jour Str 1 en ne gardant que les caractères à droite du "@" qu'on vient de traiter
Fin du tant que
La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Citer : Posté le 08/09/2018 12:57 | #
Si ton code actuel fonctionne et que le seul soucis était la Str 1, tu peux le garder ! Après je pense que tu n'as rien à perdre (si ce n'est un peu de temps) à essayer de comprendre ma version qui, je pense, s'exécutera plus vite.
Quelle ligne de mon code te pose problème ?
J'ai fait ce que je décrivais en toute lettre plus haut :
Tant qu'il existe un "@" dans la chaîne Str 1
On augmente le numéro de ligne pour l'affichage
On cherche l'indice du premier "@" dans la chaîne Str 1
On enregistre dans la Str 2 tous les caractères de la Str 1 entre le premier et l'indice obtenu précédemment
On fait ce qu'on veut avec Str 2, pour détecter des "#" ou l'afficher via Locate
On met à jour Str 1 en ne gardant que les caractères à droite du "@" qu'on vient de traiter
Fin du tant que
Avant que tu édites il y avait des "x" à la place d'arobases, et je ne vois pas trop comment gérer le "#" après
Refaire la même opération ?
De toute façon je place les "#" de cette façon pour délimiter la fin de la chaine :
"Bonjour@Comment@va ?#Bien"
Après plus rien
Je vois que mon code est lent mais ça fait un petit effet d'affichage stylé je trouve
Ajouté le 08/09/2018 à 13:05 :
OK j'ai modifié mon code ça fonctionne très bien
#Password: <no password>
10->X
1->Y
Locate 11,1,Str 1
Locate 11,2,Str 1
Locate 11,3,Str 1
For 1 -> A To StrLen(Str 20)
StrMid(Str 20, A, 1)->Str 19
If Not StrCmp(Str 19,"@"
Then Isz Y
10->X
Else If Not StrCmp(Str 19,"#"
Then Locate 9,6,StrRight(Str 20,StrLen(Str 20)-A)
255->A
Else Isz X
Locate X,Y,Str 19
IfEnd
IfEnd
Next
Merci encore Ne0tux, je me suis servi de StrRight( grâce à toi
Citer : Posté le 08/09/2018 13:07 | #
Oui j'avais mis des "x" quand j'ai programmé sur ma Casio, la flemme d'aller chercher le "@" on calc ! Enfin pas exactement la flemme : j'ai pu tout coder sans regarder l'écran, je sais où sont les fonctions et les touches. Mais je ne sais pas de mémoire où est le "@" dans le menu "CHAR".
Donc oui j'ai modifié a posteriori mes messages pour que ce soit des "@" pour que ça colle à ton utilisation, mais je suis sûr que tu avais saisi que "x" ou "@" c'est pareil.
A quoi te sert le "#" exactement ? Décaler le Locate de vers la droite ? Si c'est juste ça il te suffit de faire comme suit :
"Bonjour@Comment@va ?@#Bien@->Str 1
0->B
While StrSrc(Str 1, "@")
Isz B
StrSrc(Str 1, "@")->L
StrLeft(Str 1, L-1)->Str 2
Locate 1+StrSrc(Str 2, "#"), B, Str 2
StrRight(Str 1, StrLen(Str 1)-L)->Str 1
While GetKey
WhileEnd
While Not GetKey
WhileEnd
WhileEnd
Dans cet exemple le "Bien" est décalé de 1 vers la droite et j'ai ajouté "l'input".
La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Citer : Posté le 08/09/2018 13:11 | #
Oui j'avais mis des "x" quand j'ai programmé sur ma Casio, la flemme d'aller chercher le "@" on calc ! Enfin pas exactement la flemme : j'ai pu tout coder sans regarder l'écran, je sais où sont les fonctions et les touches. Mais je ne sais pas de mémoire où est le "@" dans le menu "CHAR".
Donc oui j'ai modifié a posteriori mes messages pour que ce soit des "@" pour que ça colle à ton utilisation, mais je suis sûr que tu avais saisi que "x" ou "@" c'est pareil.
A quoi te sert le "#" exactement ? Décaler le Locate de vers la droite ? Si c'est juste ça il te suffit de faire comme suit :
"Bonjour@Comment@va ?@#Bien@->Str 1
0->B
While StrSrc(Str 1, "@")
Isz B
StrSrc(Str 1, "@")->L
StrLeft(Str 1, L-1)->Str 2
Locate 1+StrSrc(Str 2, "#"), B, Str 2
StrRight(Str 1, StrLen(Str 1)-L)->Str 1
While GetKey
WhileEnd
While Not GetKey
WhileEnd
WhileEnd
Dans cet exemple le "Bien" est décalé de 1 vers la droite et j'ai ajouté "l'input".
Non non je vais bientôt poster le programme mis à jour pour que tu puisses voir
Citer : Posté le 08/09/2018 14:39 | # | Fichier joint
Voilà j'ai fini d'implanter le sous programme !
Il fait gagner un peu plus de 300 octets.
Et l'affichage du texte a changé.
Cf. fichier joint
Citer : Posté le 09/09/2018 16:51 | # | Fichier joint
Salut, 2 niveaux en plus (avec les dialogues qui vont avec), j'ai corrigé quelques problèmes d'affichages et j'ai fait ce que LePhénixNoir m'a conseillé grâce à l'aide de Ne0tux : un sous-programme
Maintenant le texte s'affiche à la façon de certains RPG lettre par lettre (c'est volontaire bien sûr )
Le jeu comporte déjà 5 niveaux, je ne sais pas combien je compte en faire, mais ça avance plutôt bien je trouve
La Démo est en fichier joint
Si quelqu'un la teste, merci de me donner votre avis sur l'affichage du texte, le laisser comme ça où le traiter plus rapidement (comme Ne0tux l'avait proposé) et me signaler les bugs éventuels (hormis le NON du tuto déjà connu)
Merci d'avance
KikooDX
Ajouté le 09/09/2018 à 18:30 :
Je viens de voir que le jeu comporte 200 niveaux, je doute que cela puisse tenir en 10Ko
Citer : Posté le 09/09/2018 18:34 | #
Tu te poseras la question quand tu arriveras là. À mon avis ça passe avec un peu de compression bien placée. À toi de voir ensuite.
Citer : Posté le 15/09/2018 14:09 | #
Tu aurais pu agrandir l'écran de l'émulateur pour faire la vidéo !
Citer : Posté le 15/09/2018 14:56 | #
Tu aurais pu agrandir l'écran de l'émulateur pour faire la vidéo !
Ah je ne savais pas que c'était possible... Je vais en refaire une alors
Ajouté le 15/09/2018 à 15:08 :
Voici une vidéo propre de la dernière version :
Citer : Posté le 03/10/2018 16:19 | # | Fichier joint
Je retourne sur le projet !
J'ai ajouté un niveau (le 6) mais c'est surtout prétexte pour parler de deux choses.
1. Les 3 boutons gauches
Les trois boutons se trouvant à gauche de l'interface du jeu
[ EUX ][ ][ ]
[ EUX ][ ][ ]
sont dans le jeu original assignés à trois touches inutiles sur Calc :
La première servait à payer pour voir la solution.
La seconde à voir une pub pour voir la solution (c'est un jeu mobile que voulez-vous )
Le troisième à accéder aux options.
Je n'ai rien assigné à ces trois touches. Ce n'est pas gênant mais bon, si vous avez quelque chose à proposer je pourrais peut-être combler ce vide
2. Niveaux custom
Les niveaux du jeu deviennent assez répétitifs au bout du 15ème, voilà pourquoi je vous demande si vous avez des idées de niveaux à proposer (style chiffre et des lettres), avec 7 commandes max. de disponibles.
Voir mon exemple sur le troisième post.
Bien sûr le nom serait indiqué (haut à droite de l'écran)
Voilà, merci d'avance
Fichier joint : dernière version.
Ajouté le 03/11/2018 à 10:55 :
Bonjour, je pense que je vais recoder le projet entier, utiliser un code tel que l'avait proposé @Ne0tux pour rendre le programme plus rapide (à terme c'est trop long d'attendre que les lettres s'affichent une par une) et un autre sous-programme étant la partie "jeu".
Je l'imagine comme ceci :
Dialogues : prend en paramètre une liste.
Moteur de jeu : prend un tas de paramètres.
Parce que la façon dont je l'ai conçu ça fait 200/300 octets par niveau, c'est trop pour un jeu de 200 niveaux.
Et à l'occasion je me pose toujours la question de ce que je devrais faire de ces zones inutiles...
Citer : Posté le 03/11/2018 11:43 | #
Il faut que tu trouves une méthode pour contenir les données / paramètres nécessaires à chaque niveaux de manière efficace. Pour une telle situation, j'aurais utilisé les Str. À voir.
Citer : Posté le 03/11/2018 11:45 | #
Je pense qu'il faut demander à Ne0tux dans ce cas