[R] Mélanger un packet de 52 cartes

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
jkiller19du13
Niveau 1
Niveau 1
Messages : 12
Enregistré le : sam. 06 déc. 2008 10:18
Status : Hors ligne

[R] Mélanger un packet de 52 cartes

#1

Message 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
Modifié en dernier par jkiller19du13 le sam. 27 mars 2010 00:38, modifié 1 fois.
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

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

#2

Message 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
jkiller19du13
Niveau 1
Niveau 1
Messages : 12
Enregistré le : sam. 06 déc. 2008 10:18
Status : Hors ligne

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

#3

Message par jkiller19du13 »

merci ^^
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

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

#4

Message par GaRydelaMer »

De rien ca m'a fait plaisir de le faire en 5 mn.
Je passais par la ;)
Répondre