中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

用python實現斗地主分牌洗牌的方法

發布時間:2020-06-22 16:36:47 來源:億速云 閱讀:175 作者:清晨 欄目:開發技術

這篇文章將為大家詳細講解有關斗地主分牌洗牌用python如何實現,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。具體內容如下

1、建立一個序列,共54個元素,表示一副撲克牌,初始化時是有順序的。
2、編寫一段代碼完成洗牌功能,即將剛才的序列從有序的排列變成隨機的無序排列。
3、編寫一段代碼完成切牌功能,即找到一個1-54的隨機數,將剛才洗牌后的序列從這個隨機數開始。
4、編寫一段代碼完成發牌功能,將剛才這個切牌后的無序序列,按順序分發到三個序列中去,并剩余三張底牌(也是一個序列)。
5、編寫一段代碼完成理牌功能,首先將分牌后的每個序列排序(有自帶的函數),然后按照從大到小的順序按牌型的方式顯示出來。
6、完成隨機叫地主功能,隨機出現一個地主,將三張底牌分給這個地主,形成新的序列并且降序排列。
7、要顯示出牌的名稱,如:Spade2(黑桃2)、Heart2(紅桃2)、Club2(梅花2)、Diamond2(方片2)等,也可以用縮寫:S2、H2、C2、D2等。可以使用映射(即字典),也可以自行編寫顯示程序。

代碼如下

poker=[]   #產生一副牌
pokers=[]
num=101    #用101代指黑桃1,102代指紅桃1,201代指黑桃2
for length in range(0,52):
 poker.append(num)
 num+=1
 if (length+1)%4==0:
 num-=4
 num+=10
poker.extend([230,240])
print(poker)

import random    #洗牌 奇數為一組 偶數為一組
for leng in range(0,8): 
 poker1=[]
 poker2=[]
 for length in range(0,54):
 if length%2==0:
  poker1.append(poker[length])
 else:
  poker2.append(poker[length])
 temp=random.randrange(0,2) #為1時 偶奇相加 ,為2時奇偶相加,共2**8種結果
 if temp%2==0:
 poker=poker1+poker2
 else:
 poker=poker2+poker1
print(poker)

number=int(input("請輸入切牌的位置;")) #切牌
poker1=poker[0:number]
poker2=poker[number:54]
poker=poker2+poker1
print(poker)

player1=[]    #分牌
player2=[]
player3=[]
for length in range(0,51):
 if length%3==0:
 player1.append(poker[length])
 if length%3==1:
 player2.append(poker[length])
 if length%3==2:
 player3.append(poker[length])

for length in range(51,54):  #剩下的三張牌 (地主的牌)
 num=(poker[length]-90)//10
 temp=num
 if num==11:
 temp='J'
 if num==12:
 temp='Q'
 if num==13:
 temp='K'
 
 if poker[length]%10==1:
 name=str(temp)+'S'
 pokers.append(name)
 elif poker[length]%10==2:
 name=str(temp)+'H'
 pokers.append(name)
 elif poker[length]%10==3:
 name=str(temp)+'C'
 pokers.append(name)
 elif poker[length]%10==4:
 name=str(temp)+'D'
 pokers.append(name)
 elif poker[length]==230:
 name='小王'
 pokers.append(name)
 elif poker[length]==240:
 name='大王'
 pokers.append(name)
print(pokers)

power=random.randrange(1,4)
if power==1:
 player1.extend(poker[51:54])
if power==2:
 player2.extend(poker[51:54])
if power==3:
 player3.extend(poker[51:54])
player1.sort()    #降序
player2.sort()  
player3.sort()
player1=player1[::-1]
player2=player2[::-1]
player3=player3[::-1]


player1s=[]    #顯示
player2s=[]
player3s=[]
for length in range(0,len(player1)):  #顯示 player1
 num=(player1[length]-90)//10
 temp=num
 if num==11:
 temp='J'
 if num==12:
 temp='Q'
 if num==13:
 temp='K'
 
 if player1[length]%10==1:
 name=str(temp)+'S'
 player1s.append(name)
 elif player1[length]%10==2:
 name=str(temp)+'H'
 player1s.append(name)
 elif player1[length]%10==3:
 name=str(temp)+'C'
 player1s.append(name)
 elif player1[length]%10==4:
 name=str(temp)+'D'
 player1s.append(name)
 elif player1[length]==230:
 name='小王'
 player1s.append(name)
 elif player1[length]==240:
 name='大王'
 player1s.append(name)

for length in range(0,len(player2)):  #顯示 player2
 num=(player2[length]-90)//10
 temp=num
 if num==11:
 temp='J'
 if num==12:
 temp='Q'
 if num==13:
 temp='K'
 
 if player2[length]%10==1:
 name=str(temp)+'S'
 player2s.append(name)
 elif player2[length]%10==2:
 name=str(temp)+'H'
 player2s.append(name)
 elif player2[length]%10==3:
 name=str(temp)+'C'
 player2s.append(name)
 elif player2[length]%10==4:
 name=str(temp)+'D'
 player2s.append(name)
 elif player2[length]==230:
 name='小王'
 player2s.append(name)
 elif player2[length]==240:
 name='大王'
 player2s.append(name)
for length in range(0,len(player3)):  #顯示 player3
 num=(player3[length]-90)//10
 temp=num
 if num==11:
 temp='J'
 if num==12:
 temp='Q'
 if num==13:
 temp='K'
 
 if player3[length]%10==1:
 name=str(temp)+'S'
 player3s.append(name)
 elif player3[length]%10==2:
 name=str(temp)+'H'
 player3s.append(name)
 elif player3[length]%10==3:
 name=str(temp)+'C'
 player3s.append(name)
 elif player3[length]%10==4:
 name=str(temp)+'D'
 player3s.append(name)
 elif player3[length]==230:
 name='小王'
 player3s.append(name)
 elif player3[length]==240:
 name='大王'
 player3s.append(name)
if len(player1s)==17:
 print('農民:',player1s)
else:
 print('地主:',player1s)
if len(player2s)==17:
 print('農民:',player2s)
else:
 print('地主:',player2s)
if len(player3s)==17:
 print('農民:',player3s)
else:
 print('地主:',player3s)

關于斗地主分牌洗牌用python如何實現就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

密山市| 军事| 绥棱县| 丁青县| 色达县| 宜君县| 盐池县| 旬邑县| 如东县| 庆城县| 哈尔滨市| 西充县| 大新县| 通渭县| 成都市| 凌云县| 天气| 横峰县| 福贡县| 锦州市| 远安县| 华宁县| 唐山市| 通化市| 新河县| 镇坪县| 永德县| 绥宁县| 浮梁县| 肥乡县| 桃园县| 巴塘县| 宾阳县| 呼玛县| 普兰县| 衢州市| 唐山市| 琼海市| 左云县| 德格县| 中西区|