#Include-Once #Include #Region Globals Var Global $aCouleurs[5] = [4, "Pique", "Coeur", "Carreau", "Trèfle"] Global $aNoms[14] = [13, "Deux", "Trois", "Quatre", "Cinq", "Six", _ "Sept", "Huit", "Neuf", "Dix", "Valet", "Dame", "Roi", "As"] Global $aValeurs[14] = [13, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10, 11] Global $aJokers[3] = ["*", "JoKer", "*"] Global $aTarots[23][3] = [[22, "Cavalier", ""], _ ["Atout", "L'Excuse", 5],["Atout", "Le Petit", 5], _ ["Atout", "2", 0.5],["Atout", "3", 0.5],["Atout", "4", 0.5],["Atout", "5", 0.5], _ ["Atout", "6", 0.5],["Atout", "7", 0.5],["Atout", "8", 0.5],["Atout", "9", 0.5], _ ["Atout", "10", 0.5],["Atout", "11", 0.5],["Atout", "12", 0],["Atout", "13", 0.5], _ ["Atout", "14", 0.5],["Atout", "15", 0.5],["Atout", "16", 0.5],["Atout", "17", 0.5], _ ["Atout", "18", 0.5],["Atout", "19", 0.5],["Atout", "20", 0.5],["Atout", "Le 21", 5]] Global $aTarrotValeurs[15] = [14, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 2, 3, 4, 5, 0.5] #EndRegion Globals Var #Region Exemple If @ScriptName = "_My_Jeux2Cartes.au3" Then Local $MonJeuxBelote = _Jeu2Cartes_Create(32) _Jeu2Cartes_Print($MonJeuxBelote) ConsoleWrite(@LF) _Jeu2Cartes_Randomize($MonJeuxBelote) _Jeu2Cartes_Print($MonJeuxBelote) ConsoleWrite(@LF) _Jeu2Cartes_Print($MonJeuxBelote, True) ConsoleWrite(@LF) Local $MonJeux32Jokers = _Jeu2Cartes_Create(34) _Jeu2Cartes_Print($MonJeux32Jokers, True) ConsoleWrite(@LF) Local $MonJeux52Joker = _Jeu2Cartes_Create(54) _Jeu2Cartes_Print($MonJeux52Joker, True) ConsoleWrite(@LF) Local $MonJeuxTarrot = _Jeu2Cartes_Create(78) _Jeu2Cartes_Print($MonJeuxTarrot, True) Local $MonJeux52 = _Jeu2Cartes_Create() _Jeu2Cartes_Print($MonJeux52, True) ConsoleWrite(@LF) Local $aMesCartes[14] = [13, "Two", "Three", "Four", "Five", "Six", _ "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King", "Ace"] Local $aMesCouleurs[5] = [4, "Spade", "Heart", "Diamonds", "Clover"] Local $MonJeuxPerso = _Jeu2Cartes_Create(32, $aMesCouleurs, $aMesCartes) _Jeu2Cartes_Print($MonJeuxPerso, True) ConsoleWrite(@LF) EndIf #EndRegion Exemple Func _Jeu2Cartes_Create($nb_Cartes = 52, $aColors = 0, $aCartes = 0, $aVals = 0) If $aCartes = 0 Then $aCartes = $aNoms If $aColors = 0 Then $aColors = $aCouleurs Local $IndexCarte = 1, $Start = 1, $Joker = False Switch $nb_Cartes Case 32 $Start = 6 Local $Jeu2Cartes[32 + $IndexCarte][3] Case 34 $Start = 6 $Joker = True Local $Jeu2Cartes[34 + $IndexCarte][3] Case 54 $Joker = True Local $Jeu2Cartes[54 + $IndexCarte][3] Case 78 Local $Jeu2Cartes[78 + 1][3] For $IndexCarte = 1 To $aTarots[0][0] $Jeu2Cartes[$IndexCarte][0] = $aTarots[$IndexCarte][0] $Jeu2Cartes[$IndexCarte][1] = $aTarots[$IndexCarte][1] $Jeu2Cartes[$IndexCarte][2] = $aTarots[$IndexCarte][2] Next ReDim $aCartes[15] _ArrayInsert($aCartes, 12, $aTarots[0][1]) $aCartes[0] = 14 $aVals = $aTarrotValeurs Case Else Local $Jeu2Cartes[52 + $IndexCarte][3] EndSwitch If $aVals = 0 Then $aVals = $aValeurs For $color = 1 To $aColors[0] For $carte = $Start To $aCartes[0] $Jeu2Cartes[$IndexCarte][0] = $aColors[$color] $Jeu2Cartes[$IndexCarte][1] = $aCartes[$carte] $Jeu2Cartes[$IndexCarte][2] = $aVals[$carte] $IndexCarte += 1 Next Next If $Joker Then For $i = 1 To 2 $Jeu2Cartes[$IndexCarte][0] = $aJokers[0] $Jeu2Cartes[$IndexCarte][1] = $aJokers[1] $Jeu2Cartes[$IndexCarte][2] = $aJokers[2] $IndexCarte += 1 Next EndIf $Jeu2Cartes[0][0] = $IndexCarte - 1 Return $Jeu2Cartes EndFunc ;==>_Jeu2Cartes_Create Func _Jeu2Cartes_Print(ByRef $Jeu2Cartes, $Randomize = False) Local $Prefix = "Carte n° " If $Randomize = True Then _Jeu2Cartes_Randomize($Jeu2Cartes) ConsoleWrite("-> Tirage " & $Jeu2Cartes[0][0] & " Cartes mélangées" & @LF) Else ConsoleWrite("-> Jeu de " & $Jeu2Cartes[0][0] & " Cartes" & @LF) EndIf For $IndexCarte = 1 To $Jeu2Cartes[0][0] ConsoleWrite($Prefix & StringFormat("%02s", $IndexCarte) & " -> " & _ $Jeu2Cartes[$IndexCarte][1] & " de " & _ $Jeu2Cartes[$IndexCarte][0] & " Nb Pt " & _ $Jeu2Cartes[$IndexCarte][2] & @LF) Next EndFunc ;==>_Jeu2Cartes_Print Func _Jeu2Cartes_Randomize(ByRef $Jeu2Cartes) Local $nb_Cartes = $Jeu2Cartes[0][0] Local $Melange[$nb_Cartes], $tmpJeu2Cartes[$nb_Cartes + 1][3] $tmpJeu2Cartes[0][0] = $Jeu2Cartes[0][0] Local $IndexCarte, $i = 0 While $i < $nb_Cartes $IndexCarte = Random(1, $nb_Cartes, 1) If _ArraySearch($Melange, $IndexCarte) = -1 Then $Melange[$i] = $IndexCarte $i += 1 EndIf WEnd For $i = 1 To $nb_Cartes $tmpJeu2Cartes[$i][0] = $Jeu2Cartes[$Melange[$i - 1]][0] $tmpJeu2Cartes[$i][1] = $Jeu2Cartes[$Melange[$i - 1]][1] $tmpJeu2Cartes[$i][2] = $Jeu2Cartes[$Melange[$i - 1]][2] Next $Jeu2Cartes = $tmpJeu2Cartes EndFunc ;==>_Jeu2Cartes_Randomize