Vous n'êtes pas identifié(e). Pour pouvoir écrire ou répondre à un message, vous devez vous connecter ou vous créer un compte sur JAWA.

#1 09-02-2021 13:18:16

irret
Membre
Inscription : 24-09-2020

Mélanger des cartes ✓

Bonjour,

J'ai découvert Jawa il ya quelques mois, et bien que je n'ai pas encore publié de jeu, je m'amuse comme une folle et j'ai appris plein de choses! Donc merci au dev et à ceux qui alimentent le forum, ça m'a beaucoup aidé.

Comme l'indique le titre du post, je cherche à mélanger un paquet de cartes. J'ai essayé tout un tas de méthodes, aucune n'a fonctionné comme je le voulais. J'ai même fait planté le serveur plusieurs fois(erreur 503)!

Je me résigne donc à tenter une nouvelle méthode, franchement fastidieuse mais comme je n'ai que 10 cartes, ça va encore. J'ai numéroté mes cartes dans une variable custom, et j'ai créé un tableau avec les coordonnées x "mélangées" sur plusieurs lignes :
100|200|300...~200|300|100... ~300|100|200... pour donner un exemple.

J'ai ensuite créé le script suivant:

variable:temp:[_rand:0:9]

modifier:1:x:{{position$_customA_1$temp}}


Ca non plus, ça ne fonctionne pas, et si j'ajoute message:{{position$_customA_1$temp}} à mon script, j'obtiens "---range error---".

Est-ce une erreur de syntaxe? Ou bien n'est-il pas possible de référencer une colonne d'un tableau à partir d'une variable custom?

Encore mieux, est-ce que quelqu'un aurait une méthode moins fastidieuse pour mélanger des cartes?

Merci d'avance,

Irret

Hors ligne

#2 09-02-2021 13:39:49

jawa
Admin

Re : Mélanger des cartes ✓

Hello
C'est un grand classique en algorithmique ! sans regarder ce qui clocherait dans votre script, je partirais sur la méthode suivante, à savoir qu'un mélange d'un paquet de cartes n'est rien d'autre qu'une suite de permuattion entre 2 cartes choises au hasard.
Pour faire ça
- positionner les 10 cartes dans l'ordre initial
- créer un tableau ID_CARTES qui stocke les id des 10 cartes et un tableau X_CARTES avec les coordonnées X initiales de chaque carte   et des variables  C1, C2 et TEMP
- créer un scrript permuter 2 cartes au pif !

  
// tirer 2 cartes au sort
variable:C1:[_RAND:0:9] // 9 car on a 10 cartes
variable:C2:[_RAND:0:9]

condition:c1!=c2 // on ne permute que si on a titré 2 cartes différentes 

// inverser les valeurs des 2 cartes dans le tableau x cartes
variable:TEMP:{{X_CARTE$C1}}
variable:{{X_CARTE$C1}}:{{X_CARTE$C2}}
variable:{{X_CARTE$C2}}:{{TEMP}}

// modifier la position visuelle des cartes en accord
modifer:{{ID_CARTES$C1}}x:{{X_CARTES$C1}}:.5
modifer:{{ID_CARTES$C1}}x:{{X_CARTES$C2}}:.5 // avec une transition d'une demi seconde sur le modifier X on crée un effet de battage

condition:sinon // sinon on recommence
actionner:<id du script de permutation>
condition:fin

Ensuite créer un script "mélanger cartes" ou on va appeler 10 ou 12 fois de suite le script permuter (au besoin avec une boucle)

Si il s'agit de battre un tas de cartes empilées  ca sera la même astuce mais en jouant sur le plan au lieu du x

Hope it helps

#3 09-02-2021 13:49:03

irret
Membre
Inscription : 24-09-2020

Re : Mélanger des cartes &check;

Wow! D'après ce que j'avais vu dans le forum, je m'attendais à une réponse aussi claire que celle-ci, mais je ne m'attendais certainement pas à ce que ce soit aussi rapide!

Je teste ça tout de suite!

Merci encore pour le travail incroyable que vous faites!

Hors ligne

Pied de page des forums