python之扑克牌小游戏

题目描述

有如下设计:
lst_suit = [‘黑桃’,’红桃’,’梅花’,’方块’],存放了扑克牌的花色。
lst_face = [‘3’,’4’,’5’,’6’,’7’,’8’,’9’,’10’,’J’,’Q’,’K’,’A’,’2’],存放了扑克牌的牌面大小。
其元素已按照牌面大小升序排列。
试编写程序,完成以下功能。

题目要求

  1. 利用列表生成式,将以上两个列表搭配生成所有的牌面。
  2. 使用random库的shuffle函数将列表的次序打乱完成洗牌过程。
  3. 根据已有游戏经验,完成一款小游戏设计。

比大小游戏,游戏规则:计算机随机抽取- -张牌,玩家输入牌号,比较两张牌的大小;
判断规则为,点数由小到大为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]},你赢了")

你可能感兴趣的:(python,python,list)