J'arrive pas a trouver le code source pour "un mélange de carte".
shlen1
Messages postés2Date d'inscriptionsamedi 11 juin 2005StatutMembreDernière intervention15 juin 2005
-
11 juin 2005 à 14:45
cs_dragon
Messages postés2336Date d'inscriptionsamedi 14 juillet 2001StatutMembreDernière intervention 5 mai 2009
-
15 juin 2005 à 14:59
Voilà je suis en train de créé un jeu de carte genre yu-gi-ho, mais j'ai un serieux problème car j'arrive pas a faire un mélange de carte,dans se mélange il faut mélanger 40 cartes le zero inclus.J'ai aissayé avec l'instruction rnd mais sela prend du temps avec la méthode que j'emplois. Donc si vous pouvez m'aider sa serai bien.
Merci d'avance!!!
A voir également:
J'arrive pas a trouver le code source pour "un mélange de carte".
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 11 juin 2005 à 15:48
Salut
Bah oui, la génération de nombre pseudo aléatoire est la meilleure façon de mélanger.
Ce que j'aurai fait :
Sachant que tu as 40 cartes, numérotées de 0 à 39
Un tableau CarteListe(39) qui contient chaque carte, dans l'ordre, de 0 à 39 (simple chiffre)
Un tableau CarteMélangées(39) qui contient les cartes mélangées (idem = n°)
Génère un chiffre avec Rnd ...
Dans une forme, crée :
- un bouton nommé cmdGo
- un TextBox nommé txtRésultat
et colle ce code dans la procédure cmdGo_Click :
Dim CarteListe() As String
Dim CarteMélangées() As String
Dim r As Long, Index As Long, NbCartes As Long
NbCartes = 39 ' Choix du nombre de cartes
ReDim CarteListe(NbCartes) ' Redimensionne les tableaux
ReDim CarteMélangées(NbCartes)
' Pour générer une séquence aléatoire différente à chaque lancement
Randomize
' Initialise les tableaux
For r = 0 To NbCartes
CarteListe(r) = CStr(r) ' Cartes dans l'ordre
CarteMélangées(r) = "" ' Cartes mélangées : vides
Next r
' Boucle tant que toutes les cartes n'ont pas trouvé leur place
' sauf les deux dernières : on les fera 'à la main'
Index = 0
Do While Index < (NbCartes - 2)
r = Int(Rnd() * (NbCartes + 1))
If CarteListe(r) <> "" Then
' Atrribue cette carte
CarteMélangées(Index) = CarteListe(r)
' Vide la mémoire d'origine pour ne pas la réutiliser
CarteListe(r) = ""
' Incrémente le compteur
Index = Index + 1
End If
DoEvents
Loop
' Il ne nous reste que 2 cartes à attribuer
' On ne va pas passer par un chiffre aléatoire pour ces deux là
' Ce serait trop long de tomber sur les bons chiffres
For r = 0 To NbCartes
If CarteListe(r) <> "" Then
CarteMélangées(Index) = CarteListe(r)
Index = Index + 1
End If
Next r
' Voilà, on a mélangé nos cartes :
For r = 0 To NbCartes
txtRésultat.Text = txtRésultat.Text & CarteMélangées(r) & ", "
Next r
txtRésultat.Text = txtRésultat.Text & vbCrLf
txtRésultat.SelStart = Len(txtRésultat.Text)
Screen.MousePointer = vbDefault
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
cs_dragon
Messages postés2336Date d'inscriptionsamedi 14 juillet 2001StatutMembreDernière intervention 5 mai 20096 12 juin 2005 à 22:02
ça donnerais rien
toutes les cartes ont été mélangé avec cette méthode, puisque toutes les cartes on passé par le random
-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
Vous n’avez pas trouvé la réponse que vous recherchez ?
shlen1
Messages postés2Date d'inscriptionsamedi 11 juin 2005StatutMembreDernière intervention15 juin 2005 15 juin 2005 à 14:35
merci les gas c tré sympas car se mélange commencé a ménervé car sa faisai 3 mois que moi et un pote travaillé decu donc cela nous aidera beaucoup et encore merci
cs_dragon
Messages postés2336Date d'inscriptionsamedi 14 juillet 2001StatutMembreDernière intervention 5 mai 20096 15 juin 2005 à 14:59
pourtant, mélanger des cartes c'est hyper connu comme algo
bizarre que vous avez pas trouvé avant le code
-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------