Page 1 sur 1

[R] Mélanger un packet de 52 cartes

Posté : ven. 26 mars 2010 23:29
par jkiller19du13
bonjour,
je tente de creer un script qui melange un packet de cartes prédefini et les met dans un fichier ini mais je n'y arrive pas des cartes deja utiliser sont reprise donc voila mon brouillon , n'esiter pas conseille info amelioration etc ...
► Afficher le texte
merci

Re: [..] Mélanger un packet de 52 cartes

Posté : sam. 27 mars 2010 00:33
par GaRydelaMer
Bonsoir

alors j'ai pas encore bien regarder ton code mais voila mon idée.

Tu créer un tableau de a 2 dimensions

$Cartes[53][2]

tu as ainssi le moyen de stocker les infos sur les cartes

$Cartes[1][0] = la couleur (Pique)
$Cartes[1][1] = la Valeur (valet)

Donc de 1 à 52 tu as toutes tes cartes.

Ensuite le mélange, tu vas créer un 2eme tableau à 1 dimension pour contenir seulement l'index la référence à ta carte, tu mélanges ce tableaux.

Pour mélanger, Random ( 1, 52, 1), et tu vérifie dans le tableaux si tu as déja une carte attribué sinon tu refais un tirage. Ceci dans une boucle.

Code : Tout sélectionner

#Include <Array.au3>
Local $Couleurs[5] = [4, "Pique", "Coeur", "Carreau", "Trèfle"]
Local $Valeurs[14] = [13, "As", "Deux", "trois", "Quatre", "Cinq", _
        "Six", "Sept", "Huit", "Neuf", "Dix", "Valet", "Dame", "Roi"]
Local $Cartes[53][2]
$Cartes[0][0] = 52

Local $k = 1
For $j = 1 To $Couleurs[0]
    For $i = 1 To $Valeurs[0]
        $Cartes[$k][0] = $Valeurs[$i]
        $Cartes[$k][1] = $Couleurs[$j]
        $k += 1
    Next
Next

Local $Melange[52], $IndexCarte, $i = 0
While $i < UBound($Melange)
    $IndexCarte = Random (1, 52, 1)
    If _ArraySearch($Melange, $IndexCarte) = -1 Then
        $Melange[$i] = $IndexCarte
        $i += 1
    EndIf
WEnd

For $i = 0 To 51
    $IndexCarte = $Melange[$i]
    ConsoleWrite("Tirage Carte mélangée = " & $i + 1 & " -> " & _
            $Cartes[$IndexCarte][0] & " " & $Cartes[$IndexCarte][1] & @LF)
Next

Re: [..] Mélanger un packet de 52 cartes

Posté : sam. 27 mars 2010 00:38
par jkiller19du13
merci ^^

Re: [R] Mélanger un packet de 52 cartes

Posté : sam. 27 mars 2010 00:41
par GaRydelaMer
De rien ca m'a fait plaisir de le faire en 5 mn.
Je passais par la ;)