Cluedo sous Excel (distribution aléatoire)

S

Sothis

Guest
Bonjour,

Je cherche à monter un programme de Cluedo sous Excel.

Mon problème est comment faire une distribution aléatoire des cartes entre les joueurs, SAUF les cartes déjà distribuées dans la prochette mystère.

J'explique : J'ai une liste de suspects numérotée de 1 à 10, une liste d'armes de 11 à 18 et une liste de lieux de 19 à 30.

Je distribue dans la pochette mystère un suspect (alea.entre.bornes(1;10)) une arme (alea.entre.bornes(11;18)) et un lieu (alea.entre.bornes(19;30)). Jusque là ça va.

Ensuite, il faut que je distribue les données restantes (tous les suspects restant, toutes les armes restantes et tous les lieux restant mélangés) entre les joueurs de manière aléatoire, sans que cela répète les données tirées dans la pochette mystère et sans doublons.

J'ai téléchargé une macro complémentaire pour faire un tirage aléatoire entre bornes sans répétitions qui marche très bien :

http://yallouz.arie.free.fr/excel/excelalea.php

Mais je voudrais l'améliorer pour exclure les données déjà tirées dans la pochette mystère. Comment faire ?

Merci de votre aide.
 

Creepy

XLDnaute Accro
Bonjour le Forum, Sothis,

Alors moi je passerais par des tableaux. Un tableau pour les lieux, 1 pour les armes et un dernier pour les personnages.

Je stockerais mon chiffre aleatoire dans 3 variables et je supprimerais l'entrée du tableau. Un petit redim pour terminer et voila.

Y'a peut être plus simple mais comme ca à chaud je ferais ca.

@+

Creepy
 
S

Sothis

Guest
Alors là, y va falloir m'expliquer plus lentement... !!!

J'ai bien trois tableaux.

Qu'est-e que tu entends par 'stocker mon chiffre aléatoire dans 3 variables et supprimer l'entrée du tableau' et qu'est-ce que 'redim' ???

Merci
 

soft

XLDnaute Occasionnel
Bonjour Sothis, Creepy, le forum,

Question interréssante, mais un fichier avec une ébauche aurait été un gain de temps.

En repartant de zéro, voilà en fichier joint une solution complète. [file name=Cluedo.zip size=14449]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Cluedo.zip[/file]
 

Pièces jointes

  • Cluedo.zip
    14.1 KB · Affichages: 180

soft

XLDnaute Occasionnel
La version précédente ne fonctionnait pas correctement avec moins de 4 et plus de 5 joueurs.
Voilà une nouvelle version. [file name=Cluedo_20051205165250.zip size=13861]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Cluedo_20051205165250.zip[/file]
 

Pièces jointes

  • Cluedo_20051205165250.zip
    13.5 KB · Affichages: 121

Creepy

XLDnaute Accro
Hello le Forum, Sothis, Soft,

Houlala le problème semblait simple mais en faites il est complexe !!

Soft houla c'est long comme code !!

J'ai donc essayé de faire un code court et rapide et voila ma solution. Pas trop mal je dois bien avouer !

:)

Oui je suis content de moi :p

Je suis parti que sur le pb de base : A savoir Attribuer une liste dans un tableau sans la valeur 'pochette'.

J'ai pas eu le temps de rega'rder la répartition par jouer !

Mais je pense que ce n'est pas le plus dur, en partant du même principe tu devrais y arriver

Bon allez je me sauve, j'ai assez travaillé pour aujourd'hui

@+

Creepy [file name=Cluedo_Creepy.zip size=13205]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Cluedo_Creepy.zip[/file]
 

Pièces jointes

  • Cluedo_Creepy.zip
    12.9 KB · Affichages: 95

soft

XLDnaute Occasionnel
Effectivement mon code est long, mais j'avais juste commencé par la petite fonction qui stocke les 3 variables de la pochette mystère, puis je me suis pris au jeux de finir.
En le re-regardant, la première fonction devient inutile et on peut aussi optimiser un peu le reste. Par contre il fait aussi toute la distribution.

Par contre Creepy, si je peux me permettre un conseil pour ton code, il est possible de donner directement la plage de recherche au lieu de chercher chaque fois depuis 1 puis d'ajouter x et d'utiliser 2 cellules pour rien.

Par exemple quand tu écris :

Arme_Pochette = Int(8 * Rnd + 1)
Cells(2, 6).Value = Arme_Pochette
...
Arme_Pochette = Arme_Pochette + 10
...
Cells(3, 6).Value = Arme_Pochette


On peux remplacer par :

Arme_pochette = Int((18 - 12) * Rnd + 11)
Cells(3, 6).Value = Arme_Pochette
 
S

Sothis

Guest
Soft et Creepy, merci pour vos réponses !

Le seul problème, (je sais, je suis un boulet!) c'est que je ne m'y connais pas du tout en VBA. Sous Excel, j'arrive bien à faire des formules complexes, à faire des macros basiques, mais pour le code, alors là, je suis paumée !

Soft, j'aime beaucoup ta solution, à un détail près que j'aurais dû te préciser : peu importe que les joueurs n'aient pas le même nombre de cartes, mais il faut que toutes les cartes restantes (sauf les trois de la pochette myst_re) soient distribuées.

Creepy, je n'arrive pas à trouver ton code (je ne vois pas de macro dans ton fichier) ???

Excusez-moi de ne pas avoir joint mon fichier, c'est la première fois que je poste ici, et je ne connais pas les habitudes de ce forum.

Voici donc mon ébauche de fichier. Mon problème est sur la feuille 'secret'.
En jaune, la pochette mystère. En rouge, les cases dans lesquelles il faut distribuer les valeurs restantes. A gauche, les tables. La colonne sui se balade entre les deux, c'est une tentative pour lister les chiffres qui restent après distribution de la pochette mystère (la valeur 0 représente les cartes de la pochette mystère).

Je suis partie sur la base d'un jeu à 4 joueurs. C'est pour ça que j'aime beaucoup la solution de soft, qui permet de changer ce paramètre.

Je ne me suis pas encore penchée sur le problème de la vérification des hypothèses. Pour l'instant, j'essaye de le bâtir sur un principe de formules SI imbriquées, mais je suis sûre qu'il y a de meilleures solutions... Bref, chaque chose en son temps ! [file name=CLUEDO_2.zip size=19919]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/CLUEDO_2.zip[/file]
 

Pièces jointes

  • CLUEDO_2.zip
    19.5 KB · Affichages: 65

soft

XLDnaute Occasionnel
Re-bonjour,

Pas tout compris (ou chercher à comprendre) à tes formules et ton fichier, mais j'ai mixé avec ce que j'avais fait + quelques corrections.

Donc en cliquant depuis la nouvelle feuille, un nouveau jeux est repris par ta feuille 'secret'. [file name=CLUEDO_soft.zip size=25198]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/CLUEDO_soft.zip[/file]
 

Pièces jointes

  • CLUEDO_soft.zip
    24.6 KB · Affichages: 118

Creepy

XLDnaute Accro
RE all,

Soft > Merci pour le tuyau, je ne savais comment faire un aléatoire sur un intervel commancant par autre chose que 0 !

Waahouu faire un cluedo sans macro !! ?? !! Ca va être très dur non ?
Enfin si tu arrives àquelque chose de probant je suis preneur !!

Pour voir mon code sous Excel, il faut aller dans l'editeur VBA (ALT+F11).

Et là ... Magie !

@+

Creepy
 
S

Sothis

Guest
Merci beaucoup, c'est génial !

Soft, je vais essayer d'adapter et de finir le fichier que tu m'as envoyé et qui est super.

Creepy, merci, j'avais fini par trouver où se trouvait le code. Je vais maintenant essayer de le décrypter !

Je suis complètement autodidacte en informatique. Savez-vous où je peux apprendre les bases du VBA pour pouvoir faire ce genre de trucs toute seule ? (par exemple en ligne ?)

Promis, si j'arrive à construire un truc probant, je vous l'envoie !

Et si j'ai encore des problèmes, vous entendrez de nouveau parler de moi !

Merci encore et à +
 

Statistiques des forums

Discussions
312 488
Messages
2 088 858
Membres
103 978
dernier inscrit
bderradji