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 - Projets de programmation


Index du Forum » Projets de programmation » Topic/Discussion The Cursed Maze
Filoji Hors ligne Maître du Puzzle Points: 348 Défis: 16 Message

Topic/Discussion The Cursed Maze

Posté le 26/07/2019 18:18

Bonjour,

The Cursed Maze est constituer de phases d’exploration de niveaux généré aléatoirement mêlé à des combats tour par tour.

Il est programmé en Basic à partir de ma calculatrice et me donne beaucoup de fils à retordre.

Voici, qui suit, la liste des différents contenus à programmer :
- Génération aléatoire des maps (Sûrement fini)
- Génération graphique des maps (Commencé et à perfectionner)
- Génération aléatoire des ennemis
- Création des phases de combats
(Fonctionnel et à complexifier)
- Génération graphique des combats(Fini (enfin, je crois) )
- Création de seeds (En développement(sur pause))
- Création des statistique du personnage par le joueur (Fini (enfin, je crois) )
- Création d’événements aléatoire modifiant les statistique du personnage
- Création d'objet à usage unique modifiant les statistique du personnage temporairement ou non

Les Graphismes !!!






LE JEU !


1, 2, 3 Suivante
Rader Hors ligne Membre Points: 234 Défis: 0 Message

Citer : Posté le 26/07/2019 18:32 | #


Nice! J'ai hate d'en savoir plus!
Lephenixnoir En ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 26/07/2019 18:58 | #


Eh bien, joli programme ! Bon courage avec le développement. Les images attirent beaucoup le regard donc n'hésite pas à en mettre quand tu en auras pour booster ton sujet.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Mistercyb Hors ligne Membre Points: 58 Défis: 0 Message

Citer : Posté le 26/07/2019 19:25 | #


J'ai hâte de voir ce que ça va donner !
Bon courage en tout cas
Filoji Hors ligne Maître du Puzzle Points: 348 Défis: 16 Message

Citer : Posté le 27/07/2019 12:18 | #


Cela vous intéresse t il que je vous joigne le programme de génération d'étape que je viens de finir ?
Lephenixnoir, lorsque je me serais déterminé à me mettre à la programmation graphique (qui ne me tente guerre), je vous dévoilerai les images
Merci pour cet engouement inespéré !
Gloire au Flying Spaghetti Monster !!!
Alexot Hors ligne Membre Points: 539 Défis: 18 Message

Citer : Posté le 27/07/2019 14:38 | #


Sympa comme projet!
Comment fonctionne ton système de seeds?
Personnellement pour implémenter ce genre de système, je remplace les fonctions aléatoires de la calculatrice que j'utilise dans la génération de maps par une fonction pseudo aléatoire initialisée par une seed, et la seed peut être un nombre de taille quelconque.
Cliquez pour découvrir
Cliquez pour recouvrir
2b 5b 2d 2d 2d 2d 2d 3e 2b 2b 2b 3c 5d 3e 2b 2e 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2e 2e 2d 2d 2d 2d 2e 2b 2b 2b 2e 2b 5b 2d 2d 3e 2b 3c 5d 3e 2e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2e 2e 2b 5b 2d 2d 3e 2b 2b 2b 2b 2b 3c 5d 3e 2b 2e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2e 2b 2b 2b 2b 2b 2b 2e 2d 2e 2b 2e 2d 5b 2b 2b 3e 2d 2d 2d 3c 5d 3e 2e 2b 2b 2b 5b 2d 3e 2b 2b 3c 5d 3e 2e 2b 2b 2b 2e 5b 2d 3e 2b 2b 2b 3c 5d 3e 2e 5b 2d 2d 2d 3e 2b 3c 5d 3e 2d 2e 2d 5b 2d 3e 2b 2b 2b 2b 2b 2b 3c 5d 3e 2d 2e 2d 5b 2d 2d 3e 2b 2b 2b 3c 5d 3e 2d 2e 2b 5b 2b 2b 3e 2d 2d 2d 3c 5d 3e 2e 5b 2d 2d 2d 3e 2b 2b 3c 5d 3e 2d 2e 2d 5b 2d 2d 3e 2b 3c 5d 3e 2d 2d 2e 2b 5b 2d 2d 3e 2b 2b 2b 3c 5d 3e 2e 2b 2b 2b 5b 2d 3e 2b 2b 2b 2b 3c 5d 3e 2d 2e 3e 2b 5b 2d 2d 2d 3e 2b 2b 3c 5d 3e 2b 2b 2e 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2e 5b 2d 3e 2b 2b 2b 2b 2b 2b 3c 5d 3e 2d 2e
Filoji Hors ligne Maître du Puzzle Points: 348 Défis: 16 Message

Citer : Posté le 27/07/2019 15:09 | #


Alexot a écrit :
Sympa comme projet!
Comment fonctionne ton système de seeds?
Personnellement pour implémenter ce genre de système, je remplace les fonctions aléatoires de la calculatrice que j'utilise dans la génération de maps par une fonction pseudo aléatoire initialisée par une seed, et la seed peut être un nombre de taille quelconque.

La liste des coordonnés des différentes salle disponible (donc adjacentes à une salle déjà existante) sont conservé dans les listes 8 pour les x et 9 pour y (au faite, ma map se situe au niveau de la matrice Y et fait 5x5(à augmenter si besoins)) avec un ordre de vérification bien précis :
1-salle au Nord
2-salle à l'Est
3-salle au Sud
4-salle à l'Ouest
Il y a d'abord une création d'une salle à partir des listes de coordonnées
vérification si une salle peut exister (ne pas dépasser les limites de la mat Y) autour de cette dite salle
Vérification si une salle existe déjà
Vérification si les coordonnées ne sont pas déjà existantes
Création de nouvelles coordonnées
Les seeds sont donc les emplacements aléatoire des coordonnées dans les listes 8 et 9
Par exemple :
Seed : 426381 (Avec cette seed, j'ai en tout 7 pièces (les 6 coordonnées plus la première))
Le programme va donc prendre les 4emes coordonnées de la liste, puis les 2emes, puis les 6emes ...

Sinon, j'ai encore réussi à optimiser mon programme, un peu fier de moi
Gloire au Flying Spaghetti Monster !!!
Shadow15510 Hors ligne Administrateur Points: 5500 Défis: 18 Message

Citer : Posté le 27/07/2019 16:31 | #


Donc tu as des maps générées aléatoirement ? C'est ingénieux ! De mémoire j'ai jamais vu de jeux qui faisaient ça !

Bon courage ! Si tu as des questions… hésite pas
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Alexot Hors ligne Membre Points: 539 Défis: 18 Message

Citer : Posté le 27/07/2019 16:52 | #


Ingénieux comme méthode!
Mais j'appellerais pas vraiment ça une seed, mais une méthode de compression. L'avantage de ta technique est qu'on peut créer soi même un niveau et récupérer sa version compressée sous forme de 6 chiffres, le désavantage c'est que la version finale risque de contenir plus de 6 chiffres, ce qui sera peut être un peu trop long. (D'ailleurs pour la version actuelle, arrive-t-il que les listes 8 et 9 dépassent une taille de 9 cases? Dans ce cas, ta "seed" pourrait contenir des nombres à 2 chiffres et donc faire plus de 6 chiffres (et ça induirait des confusions puisque des nombres à 2 chiffres et à 1 chiffre seraient collés sans séparation).

Je pense que tu pourrais utiliser ma technique sans trop modifier ce que tu as déjà fait pour avoir des seeds de n'importe quelle taille :
Dans ton algorithme de génération de salles, au moment où tu sélectionne des coordonnées au hasard dans les listes 8 et 9, au lieu de regarder le numéro dans la "seed" ou d'en tirer un au hasard avec ranInt ou ran#, utilise un algorithme de génération de nombre pseudo aléatoire : c'est un genre d'algorithme qui peut être initialisé par une seed, et qui génère une suite de nombres aléatoire, mais qui génère toujours la même suite pour une certaine seed.
J'ai par exemple cette formule assez courte qui te permet de générer des nombres pseudo aléatoirement :

Abs(Frac(1E4sin(A×B+B)))

Qui génère un réel dans l'intervalle [0,1[
Avec A la seed et B le numéro du nombre dans la suite de nombres que tu veux générer.
Le fonctionnement de cette formule est que le sinus d'un nombre a souvent plein de nombres qui paraissent aléatoires après la virgule, on multiplie donc ce nombre par un grand nombre tel que 10 000 pour récupérer des chiffres assez loin derrière la virgule et on prend la partie fractionnaire de ce nombre pour avoir un nombre entre 0 et 0,999999...

Ainsi, au début du programme tu prend le nombre que tu veux comme seed, prenons par exemple 42. Tu le stocke dans la variable que tu utilises dans la formule (ici A).
Tu initialise B (ou autre variable mais dans l'exemple c'est B) à 0.
Puis à chaque fois que tu tires un nouveau nombre aléatoire avec la formule, tu ajoute 1 à B.

Edit : dans ma formule, A*B + B est une manière de combiner A et B, mais il est possible de faire mieux. Premièrement pour A = -1, le résultat sera toujours le même pour tout B car -1*B + B = 0. On peut d'ailleurs mettre A*B tout court à la place de A*B + B, et ne jamais utiliser la seed 0, ce qui me semble plus naturel que ne jamais utiliser la seed -1. On peut aussi utiliser une autre formule telle une fonction d'appariement par exemple la fonction d'appariement de Cantor : 0.5*(A+B)*(A+B+1) permettant de générer un nombre unique à partir de deux nombres (pour A et B différents de C et D, cette fonction retournera un nombre différent).
Cliquez pour découvrir
Cliquez pour recouvrir
2b 5b 2d 2d 2d 2d 2d 3e 2b 2b 2b 3c 5d 3e 2b 2e 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2e 2e 2d 2d 2d 2d 2e 2b 2b 2b 2e 2b 5b 2d 2d 3e 2b 3c 5d 3e 2e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2e 2e 2b 5b 2d 2d 3e 2b 2b 2b 2b 2b 3c 5d 3e 2b 2e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2e 2b 2b 2b 2b 2b 2b 2e 2d 2e 2b 2e 2d 5b 2b 2b 3e 2d 2d 2d 3c 5d 3e 2e 2b 2b 2b 5b 2d 3e 2b 2b 3c 5d 3e 2e 2b 2b 2b 2e 5b 2d 3e 2b 2b 2b 3c 5d 3e 2e 5b 2d 2d 2d 3e 2b 3c 5d 3e 2d 2e 2d 5b 2d 3e 2b 2b 2b 2b 2b 2b 3c 5d 3e 2d 2e 2d 5b 2d 2d 3e 2b 2b 2b 3c 5d 3e 2d 2e 2b 5b 2b 2b 3e 2d 2d 2d 3c 5d 3e 2e 5b 2d 2d 2d 3e 2b 2b 3c 5d 3e 2d 2e 2d 5b 2d 2d 3e 2b 3c 5d 3e 2d 2d 2e 2b 5b 2d 2d 3e 2b 2b 2b 3c 5d 3e 2e 2b 2b 2b 5b 2d 3e 2b 2b 2b 2b 3c 5d 3e 2d 2e 3e 2b 5b 2d 2d 2d 3e 2b 2b 3c 5d 3e 2b 2b 2e 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2e 5b 2d 3e 2b 2b 2b 2b 2b 2b 3c 5d 3e 2d 2e
Filoji Hors ligne Maître du Puzzle Points: 348 Défis: 16 Message

Citer : Posté le 27/07/2019 17:40 | #


Alexot a écrit :
D'ailleurs pour la version actuelle, arrive-t-il que les listes 8 et 9 dépassent une taille de 9 cases? Dans ce cas, ta "seed" pourrait contenir des nombres à 2 chiffres et donc faire plus de 6 chiffres (et ça induirait des confusions puisque des nombres à 2 chiffres et à 1 chiffre seraient collés sans séparation)

Pour remédier à celà, tout les chiffres compris entre 10 et 35 seront des lettres
Ta méthode est très bien, mais peut-être un petit problème, si le nombre est supérieur au nombre de coordonnées différentes possibles, j'aurais donc un Dim Error (Peut-être que je me fais des films)

En parallèle, j'ai avancé sur les graphismes, on est maintenant dans une salle et une flèche indique les salles adjacentes, cependant, l'énorme problème, c'est qu'il est est plus lourd que ma génération de cartes (JUSTE POUR AFFICHER 4 FLECHES AVEC LOCATE !!!)
Gloire au Flying Spaghetti Monster !!!
Lephenixnoir En ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 27/07/2019 17:42 | #


Dans ce cas soit tu as des méthodes très compliquées pour afficher des flèches avec Locate, soit ta génération est tellement petite que tu n'as pas de soucis à te faire !

Lephenixnoir, lorsque je me serais déterminé à me mettre à la programmation graphique (qui ne me tente guerre), je vous dévoilerai les images

Même en mode texte c'est suffisant ! La valeur ajoutée est réelle dans tous les cas. Et je parle pas des GIFs animés !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5500 Défis: 18 Message

Citer : Posté le 27/07/2019 17:42 | #


Si tu connais le nombre max, tu peux te débrouiller pour avoir assez de cases, quitte à avoir des 0 dans les cases inutilisées…
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Alexot Hors ligne Membre Points: 539 Défis: 18 Message

Citer : Posté le 27/07/2019 17:51 | #


Filoji a écrit :

Pour remédier à celà, tout les chiffres compris entre 10 et 35 seront des lettres

Bonne idée

Filoji a écrit :

Ta méthode est très bien, mais peut-être un petit problème, si le nombre est supérieur au nombre de coordonnées différentes possibles, j'aurais donc un Dim Error (Peut-être que je me fais des films)

Je pense qu'il n'y a pas de problème de ce côté là : le nombre généré est à la base entre 0 et 1, mais on peut le convertir en un nombre entre 1 et le nombre que tu veux.
Avec N un nombre aléatoire entre 0 et 0,9999..., pour passer à un nombre entre 1 et C compris, on peut faire :

Int (1+C×N) -> N

Cliquez pour découvrir
Cliquez pour recouvrir
2b 5b 2d 2d 2d 2d 2d 3e 2b 2b 2b 3c 5d 3e 2b 2e 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2e 2e 2d 2d 2d 2d 2e 2b 2b 2b 2e 2b 5b 2d 2d 3e 2b 3c 5d 3e 2e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2e 2e 2b 5b 2d 2d 3e 2b 2b 2b 2b 2b 3c 5d 3e 2b 2e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2e 2b 2b 2b 2b 2b 2b 2e 2d 2e 2b 2e 2d 5b 2b 2b 3e 2d 2d 2d 3c 5d 3e 2e 2b 2b 2b 5b 2d 3e 2b 2b 3c 5d 3e 2e 2b 2b 2b 2e 5b 2d 3e 2b 2b 2b 3c 5d 3e 2e 5b 2d 2d 2d 3e 2b 3c 5d 3e 2d 2e 2d 5b 2d 3e 2b 2b 2b 2b 2b 2b 3c 5d 3e 2d 2e 2d 5b 2d 2d 3e 2b 2b 2b 3c 5d 3e 2d 2e 2b 5b 2b 2b 3e 2d 2d 2d 3c 5d 3e 2e 5b 2d 2d 2d 3e 2b 2b 3c 5d 3e 2d 2e 2d 5b 2d 2d 3e 2b 3c 5d 3e 2d 2d 2e 2b 5b 2d 2d 3e 2b 2b 2b 3c 5d 3e 2e 2b 2b 2b 5b 2d 3e 2b 2b 2b 2b 3c 5d 3e 2d 2e 3e 2b 5b 2d 2d 2d 3e 2b 2b 3c 5d 3e 2b 2b 2e 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2e 5b 2d 3e 2b 2b 2b 2b 2b 2b 3c 5d 3e 2d 2e
Lephenixnoir En ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 27/07/2019 17:53 | #


Je pense qu'il n'y a pas de problème de ce côté là : le nombre généré est à la base entre 0 et 1, mais on peut le convertir en un nombre entre 1 et le nombre que tu veux.

Attention toutefois à ne pas prendre C trop grand car il n'y a pas plus de 12 chiffres d'information dans les nombres aléatoires générés, et de toute façon au-delà de 10¹² (environ) la calculatrice passe en notation exponentielle donc les chiffres les plus faibles disparaissent
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Alexot Hors ligne Membre Points: 539 Défis: 18 Message

Citer : Posté le 27/07/2019 17:55 | #


Tu as raison, mais comme il n'a besoin de cette fonction que pour choisir une coordonnée au hasard dans une liste, C est au maximum égal à 999 (la taille maximale d'une liste).
Cliquez pour découvrir
Cliquez pour recouvrir
2b 5b 2d 2d 2d 2d 2d 3e 2b 2b 2b 3c 5d 3e 2b 2e 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2e 2e 2d 2d 2d 2d 2e 2b 2b 2b 2e 2b 5b 2d 2d 3e 2b 3c 5d 3e 2e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2e 2e 2b 5b 2d 2d 3e 2b 2b 2b 2b 2b 3c 5d 3e 2b 2e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2e 2b 2b 2b 2b 2b 2b 2e 2d 2e 2b 2e 2d 5b 2b 2b 3e 2d 2d 2d 3c 5d 3e 2e 2b 2b 2b 5b 2d 3e 2b 2b 3c 5d 3e 2e 2b 2b 2b 2e 5b 2d 3e 2b 2b 2b 3c 5d 3e 2e 5b 2d 2d 2d 3e 2b 3c 5d 3e 2d 2e 2d 5b 2d 3e 2b 2b 2b 2b 2b 2b 3c 5d 3e 2d 2e 2d 5b 2d 2d 3e 2b 2b 2b 3c 5d 3e 2d 2e 2b 5b 2b 2b 3e 2d 2d 2d 3c 5d 3e 2e 5b 2d 2d 2d 3e 2b 2b 3c 5d 3e 2d 2e 2d 5b 2d 2d 3e 2b 3c 5d 3e 2d 2d 2e 2b 5b 2d 2d 3e 2b 2b 2b 3c 5d 3e 2e 2b 2b 2b 5b 2d 3e 2b 2b 2b 2b 3c 5d 3e 2d 2e 3e 2b 5b 2d 2d 2d 3e 2b 2b 3c 5d 3e 2b 2b 2e 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2e 5b 2d 3e 2b 2b 2b 2b 2b 2b 3c 5d 3e 2d 2e
Lephenixnoir En ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 27/07/2019 18:02 | #


Dans ce cas pourquoi pas RanInt() tout simplement ?

Le fonctionnement de cette formule est que le sinus d'un nombre a souvent plein de nombres qui paraissent aléatoires

Bien sûr ça suffit pour cette application, mais on est d'accord que c'est pas à faire dans la vraie vie hein !

Les "vrais" générateurs aléatoires sont compliqués à définir ont des propriétés très bien définies qui les rendent aléatoires. Par exemple (simplifié), si tu regardes les nombres qui sortent d'un Mersenne Twister, les séquences de 32×k bits sont toutes équiprobables pour n'importe quel k jusqu'à 623 !

Et puis il y a plein d'autres choses cachées... le paradoxe avec les séquences aléatoires c'est qu'on ne peut pas en générer avec un programme car le programme devrait être infini !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Filoji Hors ligne Maître du Puzzle Points: 348 Défis: 16 Message

Citer : Posté le 27/07/2019 18:13 | #


Lephenixnoir a écrit :
Dans ce cas soit tu as des méthodes très compliquées pour afficher des flèches avec Locate

Tu as tout juste
Soit ta génération est tellement petite que tu n'as pas de soucis à te faire !

Génération de 5x5 ? C'est ça que tu demandais ?
Même en mode texte c'est suffisant ! La valeur ajoutée est réelle dans tous les cas. Et je parle pas des GIFs animés !

Je vais y travailler
Shadow15510 a écrit :
Si tu connais le nombre max, tu peux te débrouiller pour avoir assez de cases, quitte à avoir des 0 dans les cases inutilisées…

Je n'ai pas très bien compris...
Mon code ressemble à ça :
{5,5→Dim Mat Y
2→Mat Y[3,3
{3,4,3,2→List 8
{2,3,4,3→List 9
1→'coordonnées possibles
RanInt#(1, Dim List 8→A
...
Où A est le numéro des coordonnées
Les salles sont marqué avec le numéro 2, les coordonnées possibles avec 1 et 0 les emplacements vides
Les valeurs de A vont s'ajouter au fur et à mesure dans la liste 5 (SEED)
Gloire au Flying Spaghetti Monster !!!
Lephenixnoir En ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 27/07/2019 18:16 | #


Génération de 5x5 ? C'est ça que tu demandais ?

Non, je plaisantais en suggérant que ton code de génération pouvait être plus court que quatre Locate. xD
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Filoji Hors ligne Maître du Puzzle Points: 348 Défis: 16 Message

Citer : Posté le 27/07/2019 18:18 | #


500o pour la génération et la seed et 812 pour les locate
Gloire au Flying Spaghetti Monster !!!
Alexot Hors ligne Membre Points: 539 Défis: 18 Message

Citer : Posté le 27/07/2019 18:27 | #


Lephenixnoir a écrit :

Dans ce cas pourquoi pas RanInt() tout simplement ?

Parce qu'on ne peut pas initialiser RanInt() avec une seed.

Lephenixnoir a écrit :

Bien sûr ça suffit pour cette application, mais on est d'accord que c'est pas à faire dans la vraie vie hein !

Oui, cette méthode est très approximative, j'aurais dû le préciser .

Filoji a écrit :

Mon code ressemble à ça :
{5,5→Dim Mat Y
2→Mat Y[3,3
{3,4,3,2→List 8
{2,3,4,3→List 9
1→'coordonnées possibles
RanInt#(1, Dim List 8→A
...


Si tu veux essayer ma méthode, tu peux remplacer RanInt#(1,Dim List 8 par
Int (1+(Dim List 8)×Abs(Frac(1E4sin(A×B))))

Puis en rajoutant à la ligne d'après B +1 -> B (ou Isz B).
Il faut aussi initialiser A et B au début du programme.

(Remplace A et B par des variables qui ne sont pas encore utilisées par ton programme.)

Cliquez pour découvrir
Cliquez pour recouvrir
2b 5b 2d 2d 2d 2d 2d 3e 2b 2b 2b 3c 5d 3e 2b 2e 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2e 2e 2d 2d 2d 2d 2e 2b 2b 2b 2e 2b 5b 2d 2d 3e 2b 3c 5d 3e 2e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2e 2e 2b 5b 2d 2d 3e 2b 2b 2b 2b 2b 3c 5d 3e 2b 2e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2e 2b 2b 2b 2b 2b 2b 2e 2d 2e 2b 2e 2d 5b 2b 2b 3e 2d 2d 2d 3c 5d 3e 2e 2b 2b 2b 5b 2d 3e 2b 2b 3c 5d 3e 2e 2b 2b 2b 2e 5b 2d 3e 2b 2b 2b 3c 5d 3e 2e 5b 2d 2d 2d 3e 2b 3c 5d 3e 2d 2e 2d 5b 2d 3e 2b 2b 2b 2b 2b 2b 3c 5d 3e 2d 2e 2d 5b 2d 2d 3e 2b 2b 2b 3c 5d 3e 2d 2e 2b 5b 2b 2b 3e 2d 2d 2d 3c 5d 3e 2e 5b 2d 2d 2d 3e 2b 2b 3c 5d 3e 2d 2e 2d 5b 2d 2d 3e 2b 3c 5d 3e 2d 2d 2e 2b 5b 2d 2d 3e 2b 2b 2b 3c 5d 3e 2e 2b 2b 2b 5b 2d 3e 2b 2b 2b 2b 3c 5d 3e 2d 2e 3e 2b 5b 2d 2d 2d 3e 2b 2b 3c 5d 3e 2b 2b 2e 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2e 5b 2d 3e 2b 2b 2b 2b 2b 2b 3c 5d 3e 2d 2e
Filoji Hors ligne Maître du Puzzle Points: 348 Défis: 16 Message

Citer : Posté le 27/07/2019 20:00 | # | Fichier joint


Je vous propose une version test de mon générateur de map (en pièce-jointe de cette réponse) !!!

Il utilise les variables A, B, C, D, E, J, K, L, Mais sont initialisé lorsque besoins.
Il utilise également les listes 5 à 9 et la Mat Y

Pour tester une map aléatoire, lancer "GOODDIM"
Il va commencer par vous afficher la mat Y (les 2 sont des salles) puis la list 5 (SEED)
Comme vous pourrez l’apercevoir, la taille de la matrice sera soit de 5x5, 7x7 ou 9x9, avec, respectivement, 7 salles, 10 salles et 13 salles

"GOODSEED" ne pourra fonctionner que si une seed valable est déjà inséré dans la liste 5, je vous conseillerai donc de commencer d'abord de lancer l'autre programme

Si bug rencontré, me prévenir !!!
Gloire au Flying Spaghetti Monster !!!
1, 2, 3 Suivante

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 100 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