有如下设计:
lst_suit = [‘黑桃’,’红桃’,’梅花’,’方块’],存放了扑克牌的花色。
lst_face = [‘3’,’4’,’5’,’6’,’7’,’8’,’9’,’10’,’J’,’Q’,’K’,’A’,’2’],存放了扑克牌的牌面大小。
其元素已按照牌面大小升序排列。
试编写程序,完成以下功能。
比大小游戏,游戏规则:计算机随机抽取- -张牌,玩家输入牌号,比较两张牌的大小;
判断规则为,点数由小到大为2345678910JQKA,点数相同则比花色,由小到大为黑红梅方。.
import sys
import random
lst_suit = ['黑桃','红桃','梅花','方块']
lst_face = ['3','4','5','6','7','8','9','10','J','Q','K','A','2']
lis = []
for x in range(len (lst_suit)):
for y in range(len (lst_face)):
lis.append(lst_suit[x]+lst_face[y])
print("--------游戏开始--------")
while True:
random.shuffle(lis)
print("洗牌完成")
num = random.randint(0,51)
print(f"计算机抽取第{num}张牌,扑克牌为{lis[num]}")
i = eval (input ('请输入牌号(0-51),输入-1为退出游戏:'))
if i == -1:
print("--------游戏结束--------")
sys.exit(0)
if lst_face.index(str(lis[num])[2:4:1]) < lst_face.index(str(lis[i][2:4:1])):
print(f"你的牌为{lis[i]},计算机的牌为{lis[num]},你赢了")
elif lst_face.index(str(lis[num])[2:4:1]) > lst_face.index(str(lis[i])[2:4:1]):
print(f"你的牌为{lis[i]},计算机的牌为{lis[num]},你输了")
else:
if lst_suit.index(str(lis[num][0]+lis[num][1])) > lst_suit.index(str(lis[i][0]+lis[i][1])):
print(f"你牌为{lis[i]},计算机的牌为{lis[num]},你输了")
else:
print(f"你的牌为{lis[i]},计算机的牌为{lis[num]},你赢了")