题目描述 一副扑克牌除去大小王以外共有五十二张牌,包含黑桃(spade),红心(heart),梅花(club),方块(diamond)四种类型,每种类型有编号为1~13的十三张牌。 现在Josie想要和朋友一起玩牌,但手上的牌她不确定是否完整。请你编写程序,帮她计算一下缺少的牌有哪些。 输入 第一行输入为现有牌数n,接下来的n行为现有卡牌的信息(包含卡牌类型,卡牌数字),可能有重复的牌出现。 输出 输出缺少的牌,按照spade, heart, club, diamond的顺序依次输出。若两张牌类型一样,则按照数字大小依次输出。 题目描述 一副扑克牌除去大小王以外共有五十二张牌,包含黑桃(spade),红心(heart),梅花(club),方块(diamond)四种类型,每种类型有编号为1~13的十三张牌。 现在Josie想要和朋友一起玩牌,但手上的牌她不确定是否完整。请你编写程序,帮她计算一下缺少的牌有哪些。 输入 第一行输入为现有牌数n,接下来的n行为现有卡牌的信息(包含卡牌类型,卡牌数字),可能有重复的牌出现。 输出 输出缺少的牌,按照spade, heart, club, diamond的顺序依次输出。若两张牌类型一样,则按照数字大小依次输出。
时间: 2024-02-22 08:58:59 浏览: 221
纸牌游戏比大小一。创建一副扑克牌类花色:黑红梅方点数:
以下是Python实现的代码:
```
cards = [[False] * 13 for _ in range(4)] # 初始化牌面状态
# 处理现有牌信息
n = int(input())
for i in range(n):
card_type, card_num = input().split()
card_num = int(card_num) - 1 # 将1~13转化为0~12
if card_type == 'spade':
cards[0][card_num] = True
elif card_type == 'heart':
cards[1][card_num] = True
elif card_type == 'club':
cards[2][card_num] = True
elif card_type == 'diamond':
cards[3][card_num] = True
# 输出缺失的牌
for i in range(4):
for j in range(13):
if not cards[i][j]:
if i == 0:
print('spade', j + 1)
elif i == 1:
print('heart', j + 1)
elif i == 2:
print('club', j + 1)
else:
print('diamond', j + 1)
```
代码思路:
1. 首先创建一个二维数组,用于记录每张牌的状态,初始化为False。
2. 处理输入的现有牌信息,根据牌的类型和数字,将相应位置的状态改为True。
3. 遍历二维数组,输出状态为False的牌,根据类型和数字输出。
阅读全文