import random """h为桃,f为方块,m为梅花,x为心""" pop = {"h2":"2","h3":"3","h4":"4","h5":"5","h6":"6","h7":"7","h8":"8","h9":"9","h10":"10","hJ":"10","hQ":"10","hK":"10","hA":"1", "x2":"2","x3":"3","x4":"4","x5":"5","x6":"6","x7":"7","x8":"8","x9":"9","x10":"10","xJ":"10","xQ":"10","xK":"10","xA":"1", "f2":"2","f3":"3","f4":"4","f5":"5","f6":"6","f7":"7","f8":"8","f9":"9","f10":"10","fJ":"10","fQ":"10","fK":"10","fA":"1", "m2":"2","m3":"3","m4":"4","m5":"5","m6":"6","m7":"7","m8":"8","m9":"9","m10":"10","mJ":"10","mQ":"10","mK":"10","mA":"1"} # 52张牌 def ruffle(): ioi = [] for i in pop: ioi.append(int(pop[i])) # print(pop[i]) random.shuffle(ioi) # 打乱列表中的数据 return ioi # print(ruffle()) # 随机发两张首牌 def deal(): pl = random.sample(ruffle(),2) # 从列表中随机获取两张牌 return pl # print(deal()) # 随机发一张牌 def deal1(): pl = random.sample(ruffle(),1) return pl # 开始游戏 tunn = input("是否开始游戏(y/n):") if tunn == "n": print("已退出游戏") elif tunn == "y": deck = ruffle() # 一整副牌 # print(len(deck)) aa = [] j = 0 for i in deal(): aa.append(i) j += int(i) deck.remove(i) # print(deck) print("玩家aa的首牌为:",aa,"共计为",j) print(f"还有{len(deck)}张牌") bb = [] k = 0 for i in deal(): bb.append(i) k += int(i) deck.remove(i) print("玩家bb的首牌为:",bb,"共计为",k) print(f"还有{len(deck)}张牌") cc = [] l = 0 for i in deal(): cc.append(i) l += int(i) deck.remove(i) print("玩家cc的首牌为:",cc,"共计为",l) print(f"还有{len(deck)}张牌") for i in range(len(ruffle())): print("现在玩家aa的牌为:", aa) tuna = input("玩家aa是否继续拿牌(y/n):") if tuna == "n": print("aa玩家放弃拿牌") elif tuna == "y": u = deal1() r = 0 for i in u: aa.append(i) deck.remove(i) for i in aa: r += int(i) print("现在玩家aa的牌为:", aa,"共计为",r) print(f"还有{len(deck)}张牌") print("现在玩家bb的牌为:", bb) tunb = input("玩家bb是否继续拿牌(y/n):") if tunb == "n": print("bb玩家放弃拿牌") elif tunb == "y": u = deal1() r = 0 for i in u: bb.append(i) deck.remove(i) for i in bb: r += int(i) print("现在玩家bb的牌为:", bb, "共计为", r) print(f"还有{len(deck)}张牌") print("现在玩家cc的牌为:", cc) tunc = input("玩家cc是否继续拿牌(y/n):") if tunc == "n": print("cc玩家放弃拿牌") elif tunc == "y": u = deal1() r = 0 for i in u: cc.append(i) deck.remove(i) for i in cc: r += int(i) print("现在玩家cc的牌为:", cc, "共计为", r) print(f"还有{len(deck)}张牌") ying = 21 # 判断输赢 aaa = 0 # 计算点数 bbb = 0 ccc = 0 # 要牌结束计算点数 if tuna == "n" and tunb == "n" and tunc == "n": for i in aa: aaa += int(i) print("现在玩家aa的牌为:", aa, "共计为", aaa) for i in bb: bbb += int(i) print("现在玩家bb的牌为:", bb, "共计为", bbb) for i in cc: ccc += int(i) print("现在玩家cc的牌为:", cc, "共计为", ccc) minn = [] # 判断最小值 # 玩家当前的点数减去21点 A_a = aaa - ying if A_a < 0: A_a = -A_a minn.append(A_a) # print(A_a) B_b = bbb - ying if B_b < 0: B_b = -B_b minn.append(B_b) # print(B_b) C_c = ccc - ying if C_c < 0: C_c = -C_c minn.append(C_c) # print(C_c) xiao = min(minn) # 取最小值 # print(type(xiao)) if xiao == A_a and xiao == B_b and xiao == C_c: print("平局!,三位玩家共同获胜!") break if xiao == A_a and xiao == B_b: print("玩家aa和玩家bb共赢!") break if xiao == A_a and xiao == C_c: print("玩家aa和玩家cc共赢!") break if xiao == B_b and xiao == C_c: print("玩家bb和玩家cc共赢!") break if xiao == A_a: print("玩家aa获胜") break if xiao == B_b: print("玩家bb获胜") break if xiao == C_c: print("玩家cc获胜") break if int(aaa) - ying == 0 and int(bbb) - ying == 0 and int(ccc) - ying == 0: print("平局!,三位玩家共同获胜!") break if int(aaa) - ying == 0 and int(bbb) - ying == 0: print("玩家aa和玩家bb共赢!") break if int(aaa) - ying == 0 and int(ccc) - ying == 0: print("玩家aa和玩家cc共赢!") break if int(bbb) - ying == 0 and int(ccc) - ying == 0: print("玩家bb和玩家cc共赢!") break if int(aaa) - ying == 0: print(f"玩家aa,赢") break if int(bbb) - ying == 0: print(f"玩家bb,赢") break if int(ccc) - ying == 0: print(f"玩家cc,赢") break