码迷,mamicode.com
首页 > 编程语言 > 详细

python——德州扑克

时间:2019-12-07 12:37:46      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:判断   color   show   down   准备   大小   pen   progress   shu   

  德州扑克

  4种花色 每个花色的牌从A-K

  功能如下:

1.洗牌:将52张牌打乱

2.发牌:洗牌结束后,发给玩家五张牌

3.验证玩家的牌型

 牌型分以下几种

 A.同花顺

 B.同花

 C.顺子

 D.四条(7777x)

 E.三条(777xx)

 F.一对(77xxx)

 G.两对(7788x)

 H.满堂红(77788)三条带一对子

 I.正常牌(24567)

  1 import random
  2 import time
  3 
  4 # 创建一副牌
  5 card_list = []
  6 for i in [A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K]:
  7     for j in [黑桃, 红桃, 方块, 梅花]:
  8         card = j + str(i)
  9         card_list.append(card)
 10 
 11 # 加载进度动画
 12 fmt = {:3d} [{:<20}].format
 13 
 14 
 15 def progressbar():
 16     for n in range(21):
 17         time.sleep(0.1)
 18         print(\r, fmt(n * 5, = * n), end=‘‘)
 19 
 20 
 21 # 洗牌
 22 def shuffle():
 23     random.shuffle(card_list)
 24     progressbar()
 25     print(\n + 洗牌完成)
 26     print(card_list)
 27 
 28 
 29 # 发牌
 30 def deal():
 31     print(发给你的牌为:)
 32     time.sleep(1)
 33     print(card_list[0:5])
 34     time.sleep(1)
 35 
 36 
 37 # 判断牌
 38 def showdown():
 39     color = []
 40     size = []
 41     # 提取五张牌的花色
 42     for k in range(1, 6):
 43         color.append(str(card_list[k - 1][0:2]))
 44     # 提取五张牌的大小
 45     for h in range(1, 6):
 46         size5 = str(card_list[h - 1][2:len(card_list[h - 1])])
 47         if size5 == "J":
 48             size5 = 11
 49         elif size5 == "Q":
 50             size5 = 12
 51         elif size5 == "K":
 52             size5 = 13
 53         elif size5 == "A":
 54             size5 = 1
 55         size.append(int(size5))
 56 
 57     size_set = list(set(size))
 58 
 59     # 判断牌
 60     while color[0] == color[1] == color[2] == color[3] == color[4]:
 61         if max(size) - min(size) == 4:
 62             print("同花顺")
 63             break
 64         print(同花)
 65         break
 66     else:
 67         if size == list(set(size)) and max(size) - min(size) == 4:
 68             print(顺子)
 69         elif len(size) - 1 == len(size_set):
 70             print(一对)
 71         elif len(size) - 2 == len(size_set):
 72             for a in range(0, 5):
 73                 for b in range(0, 3):
 74                     if size[a] == size_set[b]:
 75                         size[a] = 0
 76                         size_set[b] = 0
 77             last = [x for x in size if x != 0]
 78             if last[0] == last[1]:
 79                 print(三条)
 80             else:
 81                 print(两对)
 82         elif len(size) - 3 == len(size_set):
 83             for a in range(0, 5):
 84                 for b in range(0, 2):
 85                     if size[a] == size_set[b]:
 86                         size[a] = 0
 87                         size_set[b] = 0
 88             last = [x for x in size if x != 0]
 89             if last[0] == last[1] == last[2]:
 90                 print(四条)
 91             else:
 92                 print(满堂红)
 93         else:
 94             print(正常牌)
 95 
 96 
 97 if __name__ == "__main__":
 98     # 准备
 99     print(这儿有一副牌:)
100     time.sleep(1)
101     print(card_list)
102     time.sleep(1)
103     print(开始洗牌)
104 
105     # 洗牌
106     shuffle()
107 
108     # 发牌
109     deal()
110 
111     # 亮牌
112     showdown()

 

python——德州扑克

标签:判断   color   show   down   准备   大小   pen   progress   shu   

原文地址:https://www.cnblogs.com/yzy1314/p/12001203.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!