编程模拟发牌和洗牌
时间: 2023-07-16 10:15:56 浏览: 91
好的,以下是一个简单的 Python 代码示例,用于模拟发牌和洗牌:
```
import random
# 创建一副扑克牌
suits = ['♠', '♥', '♦', '♣']
ranks = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
deck = [(rank + suit) for suit in suits for rank in ranks]
# 洗牌
random.shuffle(deck)
# 发牌
num_players = 4
num_cards_per_player = 13
hands = [[] for _ in range(num_players)]
for i in range(num_cards_per_player):
for j in range(num_players):
hands[j].append(deck.pop())
# 输出每个玩家的手牌
for i in range(num_players):
print('Player', i + 1, ':', hands[i])
```
输出结果类似于:
```
Player 1 : ['K♣', '8♦', '7♥', '5♦', 'J♣', '10♠', 'A♠', '2♠', '2♣', 'Q♥', '3♥', '9♠', '10♦']
Player 2 : ['10♥', '6♦', '4♠', '5♠', 'A♣', '7♦', 'Q♣', 'J♦', 'K♥', '4♣', '8♣', '9♦', '3♦']
Player 3 : ['9♣', '4♦', 'Q♠', 'K♠', 'J♥', '2♥', '6♣', '5♥', '3♠', '8♥', '6♠', 'A♦', '7♠']
Player 4 : ['3♣', '8♠', 'J♠', '9♥', '2♦', '7♣', 'K♦', 'A♥', '10♣', 'Q♦', '6♥', '4♥', '5♣']
```
代码解释:
1. 创建一个包含所有扑克牌的列表 `deck`,其中每张牌都是一个字符串,表示花色和数字。`suits` 和 `ranks` 列表分别包含所有花色和数字。
2. 使用 `random.shuffle()` 函数对 `deck` 列表进行洗牌。
3. 创建一个列表 `hands`,其中每个元素都是一个空列表,表示每个玩家的手牌。
4. 使用嵌套的 for 循环将每个玩家的手牌从 `deck` 中取出,直到每个玩家都有 13 张牌。
5. 输出每个玩家的手牌。
阅读全文