mardi 4 décembre 2018

Python: Shuffling and dealing cards to 4 Players using random

How can I shuffle a cards deck for 4 players and make sure they all get different cards? I keep getting same cards for different players.

As you see in the code below>>>>> I have tried to solve this problem by using: "carddeck.remove(carddeck[i])".

Which apparently was not so useful-for the simple reason that it was !!only!! blocking the next player to get same cards as the previous one. But it didn't block the option of getting same cards for example to player 4 and player 1 .

I think there is something I am terribly missing here .

Shuffle a deck

import itertools
import random
carddeck = list(itertools.product(range(1,14),["Spade", "Club", "Diamond","Heart"]))
#print(carddeck)

#random.shuffle(carddeck)
#print (carddeck)

def player1(n):
    for i in range(n):
        carddeck = list(itertools.product(range(1,14),["Spade", "Club", "Diamond", "Heart"]))
        random.shuffle(carddeck)
        print("Player1:",carddeck[i][0],carddeck[i][1])
        carddeck.remove(carddeck[i])
        #print (carddeck)
def player2(n):
    for j in range(n):
         random.shuffle(carddeck)
         print("Player2:",carddeck[j][0],carddeck[j][1])
         carddeck.remove(carddeck[j])


def player3(n):
    for f in range(n):
         random.shuffle(carddeck)
         print("Player3:",carddeck[f][0],carddeck[f][1])
         carddeck.remove(carddeck[f])


def player4(n):
    for g in range(n):
         random.shuffle(carddeck)
         print("Player4:", carddeck[g][0],carddeck[g][1])
player1(2)
player2(2)
player3(2)
player4(2)

Output

Player1: 3 Club
Player1: 5 Spade
Player2: 7 Diamond
Player2: 10 Diamond
Player3: 3 Club
Player3: 2 Spade
Player4: 13 Diamond
Player4: 1 Spade




Aucun commentaire:

Enregistrer un commentaire