Python:随机使用随机播放和发牌给4名玩家

问题描述 投票:0回答:1

如何为4名玩家洗牌,并确保他们都获得不同的牌?我一直为不同的玩家获得同样的牌。

正如您在下面的代码中看到的那样>>>>>我试图通过使用:“carddeck.remove(carddeck [i])”来解决这个问题。

这显然不是那么有用 - 原因很简单,它只是!! !!阻止下一位玩家获得与前一张牌相同的牌。但它没有阻止选择获得同样的牌,例如玩家4和玩家1。

我觉得这里有一些我非常想念的东西。

洗牌一副牌

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)

产量

Player1: 3 Club
Player1: 5 Spade
Player2: 7 Diamond
Player2: 10 Diamond
Player3: 3 Club
Player3: 2 Spade
Player4: 13 Diamond
Player4: 1 Spade
python-3.x random shuffle
1个回答
0
投票

我想做这样的事情。希望这对你有所帮助!

# Python program to shuffle a deck of card using the module random and draw 5 cards

# import modules
import itertools, random

# make a deck of cards
deck = list(itertools.product([2, 3, 4, 5, 6, 7, 8, 9, 10, 'J', 'Q', 'K'],
                              ['Spade', 'Heart', 'Diamond', 'Club']))

# shuffle the cards
random.shuffle(deck)

# draw cards, a total of 48 cards divided among 6 players 
print("Player 1 got:")

for i in range(8):
    print(deck[i][0], "of", deck[i][1])
    deck.remove(deck[i])
print("Player 2 got:") 
for j in range(8):
    print(deck[j][0], "of", deck[j][1])
    deck.remove(deck[j])
print("Player 3 got:")
for k in range(8):
    print(deck[k][0], "of", deck[k][1])
    deck.remove(deck[k])
print("Player 4 got:") 
for l in range(8):
    print(deck[l][0], "of", deck[l][1])
    deck.remove(deck[l])
print("Player 5 got:")
for m in range(8):
    print(deck[m][0], "of", deck[m][1])
    deck.remove(deck[m])
print("Player 6 got:") 
for n in range(8):
    print(deck[n][0], "of", deck[n][1])
© www.soinside.com 2019 - 2024. All rights reserved.