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