Accueil > Forum > > > > rnd speciale
rnd speciale
mercredi 21 septembre 2005 à 18:51:29 |
rnd speciale

diablamanshadow
|
bonjour, voila je me demandais un petit truc sur lequelle je bloque j'aimerais faire un jeu basic de bataille (le jeu de carte) j'ai les carte une idee du code a mettre mais j'ai jamais fait de rnd enfin si un mais vraiment naze en gros j'aimerais que quand l'utilisateur comme l'ordi pioche ce soit une carte aleatior genre sa tire un nombre aleatoire entre 1 et 52 si ses la 1 bah sa sort exemple l'as de pique mais une fois que cette carte est tiree je ne veut plus qu'elle puisse etre prise donc comment faire exemple un rnd qui ferais un random entre 1 et 52 puis si exemple il tire la 47 bah au random futur (dans ce programme par pour toujour ^^) il ne puisse plus tirer la 47 donc il ferais un random sur tt les nombre entre 1 et 52 sauf la 47 etc par apres donc apres y tire la 42 bah au trage d'apres y pourra pas prendre ni la 47 ni la 42 etc etc vous voyez ce que je veux dire ? enfin voila et je trouve pas comment faire :s ses le seul truc qui me bloque ses ce **** de random (rnd) donc si pouviez me pondre un chtit code ou me conseiller ou autre enfin pour que j'arrive a avoir cette routine se serais bien sympa (pour ceux comme dans mes anciens post qui vienne dire ohhhh le noob , ohhh le chiant etc passer votre chemin je suis ici pour apprendre et non pour embeter mon monde ...) donc voila je suis ouvert a tous (sauf insultes etc ^^) merci d'avance Diablaman ps: pour ceux qui voudrais m'aider personnellement pour que je comprenne mieux voila mon MSN diablaman@hotmail.com encore merci d'avance ^^
|
|
mercredi 21 septembre 2005 à 19:42:37 |
Re : rnd speciale

nhervagault
|
Salut
Les cartes sont un type ou une string, tu fais comme tu veux.
Utilises une collection avec toutes les cartes dedans.
Au depart tu as 52 cartes.
Ton random tu ne fais sur l'index de ta carte et le max c'est le nombre de cartes dans la collection.
Exemple : il y a 32 cartes dans la collection
Le random te donne 1 Alors tu prends la carte dont l'index est 1 Et par exemple ta carte est 10 trefle
Tu supprimes la carte de la collection
(la collection bouche le trou toute seule)
Tu veux remettre la carte le 10 trefle change d'index il prendra l'index 31 (base0)
(quand tu la rajoutes du la mets a la fin)
Normalement ca fonctionne.
Voila
|
|
mercredi 21 septembre 2005 à 20:02:47 |
Re : rnd speciale

violent_ken
|
Réponse acceptée !
Violent Ken Salut. Voilà un exemple possible.
Le but est de tirer un nombre aléatoire, de donner sa valeur (entre 1 et 52) et de stocker cette valeur dans un tableau (redimensionnable). Ainsi, chaque nouvelle valeur du random est comparée à tous les éléments du tableau. Si elle est égale à une valeur du tableau, elle sera retirée aléatoirement, jusqu'à trouver une valeur non chosie. Trève de blabla, voilà le source :
'définitions des variables Dim Nbre As Long, Tableau() As Long, T As Long, Res As Long ReDim Tableau(1) 'pour un "vrai" hasard Randomize 'début de la boucle While UBound(Tableau) < 53 'tant que le tableau n'a pas 52 valeurs Res = 0 'ok pour l'instant 'tirage aléatoire Nbre = Int(Rnd * 52) + 1 'entre 1 et 52 'on teste avec le tableau For T = 1 To UBound(Tableau) 'pour chaque élément du tableau If Tableau(T) = Nbre Then Res = Res + 1 'déjà existant Exit For End If Next T If Res > 0 Then 'alors c'est pas bon a = a Else 'là c'est bon MsgBox Nbre 'display le resultat 'on augmente le tableau ReDim Preserve Tableau(UBound(Tableau) + 1) Tableau(UBound(Tableau)) = Nbre 'inscription de la valeur End If DoEvents 'si t'as pas de chance, pour rendre la main Wend
çà marche parfaitement, j'ai testé. Si la réponse te convient, clique sur "réponse acceptée" @+
NB: la prochaine fois, écrit mieux ton message : aucun retour à la ligne, pas de ponctuation.... c'est la cata...
|
|
mercredi 21 septembre 2005 à 22:04:17 |
Re : rnd speciale

us_30
|
Réponse acceptée !
Bonsoir,
La réponse de Violent Ken me semble juste. Mais, on peut aussi imaginer d'autres alternatives pour tirer aléatoirement une série de numéros.
Par exemple, voici la trame :
=
Sub TireUneCarte()
Dim Carte(52)
Randomize
'Boucle de tirage Do
nb = Int(Rnd * 52) + 1 'nb alea
If Carte(nb) = 0 Then 'N° de carte jamais tiré donc on l'affiche MsgBox "Votre n° de carte : " & nb Carte(nb) = 1 'marque cette carte 'Compte le nb de carte tiré compt = compt + 1 End If
Loop Until compt = 52
End Sub
=
Le fonctionnement est trés simple. On dimensionne un tableau avec un nb d'éléments (52 ici). Par défaut, chaque élément du tableau vaut zéro. Puis on choisit un nb aléatoirement entre 1 et 52. On fait corresponde l'indice du tableau au numéro de la carte (nb). Si la valeur du tableau est nulle (donc jamais choisi) on le met à 1. Et on recommence, jusqu'à épuissement... On compte le nb de numéro différent sortie afin de pouvoir sortir de la boucle DO...
Voilà !
Amucalement, Us.
|
|
mercredi 21 septembre 2005 à 22:33:27 |
Re : rnd speciale
|
jeudi 22 septembre 2005 à 12:24:37 |
Re : rnd speciale

galopin01
|
Bonjour, Comment détruire définitivement en bloc la collection ? Pas d'autre solution que de "Remove" chaque élément dans une boucle ? Merci.
|
|
jeudi 22 septembre 2005 à 13:38:37 |
Re : rnd speciale

nhervagault
|
Salut
Regardes si
set macol = nothing fonctionne.
Sinon
Set macol =new collection
Efface les données ;-)
|
|
jeudi 22 septembre 2005 à 13:59:34 |
Re : rnd speciale

diablamanshadow
|
merci merci j'adore vos reponse elle sont bien etc ^^ la je suis super malade donc je ne sais pas tester dans l'imediat (tt le temp clouer au lit :s) mais sinon je v tous les essayer et voir lequelles me convient le mieux ensuite je valide les reponse ^^ sa devrais pas tarder je pense tester sa demain ou se soit (samedi soir grand max ^^) sinon en faite j'aurais voulu un truc hyper simple mais vraiment simple de simple que meme un demeurer avec des moufles puisse comprendre genre : private sub command1_click() dim carte(52) as integer randomize nb = Int(Rnd * 52) + 1 if carte(1) then sa tire la carte sa l'efface et donc ne permet plus de la tirer donc la vire du rnd end if if carte(2) then sa tire la carte sa l'efface et donc ne permet plus de la tirer donc la vire du rnd end if end sub
voyez un truc super simple quoi ^^ que je peux parametrer et changer comme je veux du genre si du jour au lendemain je met plus 52 mais 67 bah je peux le faire et peux reparametrer le tt enfin vous voyez ce que je veux dire ^^ enfin je v tester vos reponse puis je valide celle qui me convient le mieux sinon si vous trouvez plus simple (car moi je suis vachement noob en random etc :s) bah poster allez y meme si y a 20 code je les essayerais en plus sa peut tjrs servir aux autres ^^ (a moi aussi en meme temp evidement ^^)
merci d'avance ;-)
|
|
jeudi 22 septembre 2005 à 14:35:00 |
Re : rnd speciale

diablamanshadow
|
a oui petite precision car je vient de tester les code ^^ j'arrive pas a les comment dire "modifier" je veux dire tant que le numero de la carte apparait en msgbox donc le nb ou le nbre sa depend des deux code bah le rnd est parfait (j'ai passer mon temp a faire des grille sur papier a compter le tirage barrer le chiffre etc) mais si je modifie exemple pour ken : MsgBox Nbre 'display le resultat par label1.caption = Nbre 'display le resultat ou pour us_30 : MsgBox "Votre n° de carte : " & nb par label1.caption = "Votre n° de carte : " & nb bah alors la au bout de +- en general 16 tirage bah la y redonne des chiffre qu'il a deja donner pour ken il me redonnais en general 3/4 fois 49 et pour us il me donnais en general 3/4 fois 11 et 16 enfin voila comment adapter sa a un label et non a un msgbox (car je vois mal tt les tour dire au joueur vous avez tirer sa avec un msgbox puis dire l'adversaire a tirer sa encor epar msgbox ...mais plutot p
|
|
jeudi 22 septembre 2005 à 14:35:50 |
Re : rnd speciale

diablamanshadow
|
mais plutot par label exuser moi j'ai mal clicker ^^ (raccourci clavier enfoncer sans faire expres ^^)
|
|
Cette discussion est classée dans : carte, rnd, random, tire, enfin
Répondre à ce message
Sujets en rapport avec ce message
RANDOM [ par tekila_bandita ]
Bonjour, j'aimerais savoir comment faire pour une randomisation qui ne soit pas comprise entr 0.5 et 2... sans effectuer de calcul de style : rnd*200/
Random [ par sebleboss2002 ]
Voilà, j'ai bien l'impression d'avoir un problème... Je suis en train de coder un Yams, avec cinq dés donc, et je trouve que les chiffres qui sortent
aide rnd [ par diablamanshadow ]
bonsoir,je ne savais pas trop ou mettre ca mais bon :-)en gros admettons j'ai une liste de 1 a 50 (dans un listbox)je fais un rnd cela me remplira don
Fonction Random ! Rnd ? [ par robapt ]
Bonjour à tous !Voila, je fais un petit prog qui utilise la fonction Rnd et je voudrais savoir un truc.Voici mon code : RandomizeList1.AddItem Int((50
carte sim [ par aitaissi ]
Je cherche un code en </span
Tuto VBexpress DB [ par Solenoyde ]
voila je suis débutant mais j'ai quand meme réalisé un application pilotant pour mon travai qui fonctionne enfin bref tout ca pour dire... cela fait
Projet etudiant iut [ par euck30 ]
Bonjour nous sommes étudiants a l'iut de nimes nous travaillons sur un proget de comunication entre interface grafique ( visual basic) et une carte XB
Attribuer une adresse ip a une carte réseau [ par fred2567 ]
Bonjour,voila j'ai un soucis avec mon code VB qui ne comprend pas le code suivant :ip.SetValue("192.168.1.10", 0)mask.SetValue(<font co
pilote CArte son introuvable [ par BoutEllis ]
Bonjour ,Ca fait trois jours que j essayee de trouver les pilotes de la carte son en vain , en fait j ai obtenu son refernecec 82801G (ICH7 Family) Hi
gestion plusieurs ports série [ par coolidge ]
Je recherche une librairie Windows pour gérer d'un seul bloc 4 à 8 ports série, c'est à dire COM1,COM2,COM3,COM4,COM5,COM6 : les 2 ports sur la
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOURTECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOUR par ROMELARD Fabrice
Cette session est la dernière pleinière de ces 3 jours de TechDays Paris 2010. Généralement, cette troisième journée est plus axée sur l'avenir vu par Microsoft. Après un retour sur l'avenir vu par la Science Fiction ou par ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|