python——德州撲克


  德州撲克

  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()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM