Discuss Scratch

vincelg99
Scratcher
100+ posts

jeu de Nim : comment supprimer des clones ?

Bonjour,

J'essaie de faire un jeu de Nim (20 bâtons, chaque joueur peut en enlever 1, 2 ou 3 et celui qui prend le dernier a perdu).

Je n'ai pas de problème quand c'est le joueur qui joue : le bâton se supprime bien quand on clique dessus.
Par contre quand c'est au tour de l'IA je n'arrive pas à supprimer le ou les bâtons.

Je précise que j'ai crée mes 20 bâtons en faisant des clones d'un seul lutin.
Si j'avais choisi la solution d'avoir 20 lutins différents alors j'y arrive (en mettant pour chaque lutin le script : “SI nombre de bâtons restant > numéro du lutin ALORS afficher SINON cacher”).
Mais là, avec des clones, je ne m'en sors pas…

Quelqu'un a-t-il une idée sur comment supprimer un clone dans une liste de clones, sans cliquer dessus ?

Mon projet :
https://scratch.mit.edu/projects/96810023/
(le problème est dans le bloc “supprimer batons” du 2ème lutin)

Merci

Vincent
Red-Cloud
Scratcher
86 posts

jeu de Nim : comment supprimer des clones ?

J'ai personnellement, ne vois pas comment, mais vous pourriez juste un clic droit >>> dupliquer le bâton jusqu'à ce que vous avez 20 et faire de cette façon.
vincelg99
Scratcher
100+ posts

jeu de Nim : comment supprimer des clones ?

Bonjour Red-Cloud,

Effectivement je pourrais facilement dupliquer le sprite/lutin du bâton, mais :
- le script est différent pour chaque bâton : il faudrait donc modifier à la main le script de chacun des 20 bâtons
- si je veux modifier le nombre de bâtons initiaux il faut ajouter ou supprimer des lutins à la main
Ce n'est donc pas très satisfaisant.

J'aimerai conserver un unique lutin que je clone et avoir le nombre initial de bâtons dans un simple variable.
Existe-t-il une “table des clones” ?
(Scratch en utilise probablement une en interne, mais est-elle accessible au programmeur ?)

Merci.

Vincent
ticatoc
Scratcher
59 posts

jeu de Nim : comment supprimer des clones ?

quand ce lutin est cliqué
cacher
vincelg99
Scratcher
100+ posts

jeu de Nim : comment supprimer des clones ?

Bonjour ticatoc,

Je voudrais pouvoir supprimer le clone sans cliquer dessus.
Par exemple, je voudrais une fonction du genre :
supprimer-clone(3)

Merci

Vincent
vincelg99
Scratcher
100+ posts

jeu de Nim : comment supprimer des clones ?

Problème résolu !

Voici la réponse :
https://scratch.mit.edu/projects/96953611/

L'idée est de créer une variable “pour ce lutin uniquement”.
Elle m'a été soufflée par TSTD sur ce forum :
https://scratch.mit.edu/discuss/topic/69410/
(la discussion a été ouverte il y a plus d'un an, mais heureusement TSTD l'a reprise la semaine dernière !)

A bientôt

Vincent
vincelg99
Scratcher
100+ posts

jeu de Nim : comment supprimer des clones ?

Et pour ceux que ça intéresse, voici mon jeu de Nim terminé :
https://scratch.mit.edu/projects/96810023/
ticatoc
Scratcher
59 posts

jeu de Nim : comment supprimer des clones ?

quand je commence comme un clone
supprimer ce clone
vincelg99
Scratcher
100+ posts

jeu de Nim : comment supprimer des clones ?

Bonjour ticatoc,

Si seulement ta solution pouvait fonctionner aussi simplement !
Ta solution est très bien quand tu veux faire faire quelque chose à un clone puis le supprimer quand il a terminé sa tâche.
Et en plus cela supprime tous les clones ainsi créé.

Ce que je cherchais c'est d'avoir plein de clones et ensuite qu'un autre lutin puisse décider d'effacer tel ou tel clone en particulier.
La solution (et je crois que c'est la seule) est d'associer une variable locale avec une valeur unique lors de la création de chaque clone.
Ainsi on peut choisir quel clone supprimer plus tard.

Vincent
AD1971
Scratcher
100+ posts

jeu de Nim : comment supprimer des clones ?

j'ai peut étre une autre solution explication: normalement un clone fait la même chose que l'autre clone puisque c'est une copie.Ton idée est donc impossible!!!!Mais il y a d'autre techniques comme celle ci explication:a la place de faire un clone tu duplique carrément le script…et ainsi ce script peut se supprimer.
vincelg99
Scratcher
100+ posts

jeu de Nim : comment supprimer des clones ?

Mon idée n'est pas impossible puisque j'ai réussi à la faire fonctionner !
https://scratch.mit.edu/projects/96953611/

Pour plus d'info : voir messages #6 et #7 de ce fil de discussion.

Merci quand même et probablement à bientôt.

Vincent

Powered by DjangoBB