最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實(shí)現(xiàn)斗地主分牌洗牌

 更新時(shí)間:2020年06月22日 11:06:56   作者:sea_kingdom  
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)斗地主分牌洗牌,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了python實(shí)現(xiàn)斗地主分牌洗牌的具體代碼,供大家參考,具體內(nèi)容如下

1、建立一個(gè)序列,共54個(gè)元素,表示一副撲克牌,初始化時(shí)是有順序的。
2、編寫一段代碼完成洗牌功能,即將剛才的序列從有序的排列變成隨機(jī)的無序排列。
3、編寫一段代碼完成切牌功能,即找到一個(gè)1-54的隨機(jī)數(shù),將剛才洗牌后的序列從這個(gè)隨機(jī)數(shù)開始。
4、編寫一段代碼完成發(fā)牌功能,將剛才這個(gè)切牌后的無序序列,按順序分發(fā)到三個(gè)序列中去,并剩余三張底牌(也是一個(gè)序列)。
5、編寫一段代碼完成理牌功能,首先將分牌后的每個(gè)序列排序(有自帶的函數(shù)),然后按照從大到小的順序按牌型的方式顯示出來。
6、完成隨機(jī)叫地主功能,隨機(jī)出現(xiàn)一個(gè)地主,將三張底牌分給這個(gè)地主,形成新的序列并且降序排列。
7、要顯示出牌的名稱,如:Spade2(黑桃2)、Heart2(紅桃2)、Club2(梅花2)、Diamond2(方片2)等,也可以用縮寫:S2、H2、C2、D2等??梢允褂糜成洌醋值洌部梢宰孕芯帉戯@示程序。

代碼如下

poker=[]   #產(chǎn)生一副牌
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    #洗牌 奇數(shù)為一組 偶數(shù)為一組
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時(shí) 偶奇相加 ,為2時(shí)奇偶相加,共2**8種結(jié)果
 if temp%2==0:
 poker=poker1+poker2
 else:
 poker=poker2+poker1
print(poker)

number=int(input("請(qǐng)輸入切牌的位置;")) #切牌
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('農(nóng)民:',player1s)
else:
 print('地主:',player1s)
if len(player2s)==17:
 print('農(nóng)民:',player2s)
else:
 print('地主:',player2s)
if len(player3s)==17:
 print('農(nóng)民:',player3s)
else:
 print('地主:',player3s)

(顯示可先編為函數(shù),使用時(shí)引用,可減少代碼行數(shù))
(此方法未用python內(nèi)置函數(shù),如果你嫌麻煩可在此基礎(chǔ)上再次優(yōu)化)

更多有趣的經(jīng)典小游戲?qū)崿F(xiàn)專題,分享給大家:

C++經(jīng)典小游戲匯總

python經(jīng)典小游戲匯總

python俄羅斯方塊游戲集合

JavaScript經(jīng)典游戲 玩不停

javascript經(jīng)典小游戲匯總

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Python爬取Json數(shù)據(jù)的示例代碼

    使用Python爬取Json數(shù)據(jù)的示例代碼

    這篇文章主要介紹了使用Python爬取Json數(shù)據(jù)的示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 一篇文章帶你深入學(xué)習(xí)Python函數(shù)

    一篇文章帶你深入學(xué)習(xí)Python函數(shù)

    這篇文章主要帶大家深入學(xué)習(xí)Python函數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • 配置 Pycharm 默認(rèn) Test runner 的圖文教程

    配置 Pycharm 默認(rèn) Test runner 的圖文教程

    今天小編就為大家分享一篇配置 Pycharm 默認(rèn) Test runner 的圖文教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • python模擬登陸、POST/GET請(qǐng)求方式

    python模擬登陸、POST/GET請(qǐng)求方式

    這篇文章主要介紹了python模擬登陸、POST/GET請(qǐng)求方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • python使用paramiko模塊實(shí)現(xiàn)ssh遠(yuǎn)程登陸上傳文件并執(zhí)行

    python使用paramiko模塊實(shí)現(xiàn)ssh遠(yuǎn)程登陸上傳文件并執(zhí)行

    使用paramiko,ssh遠(yuǎn)程登陸,長傳文件并執(zhí)行。其中用到了多線程和隊(duì)列,paramiko是用python語言寫的一個(gè)模塊,遵循SSH2協(xié)議,支持以加密和認(rèn)證的方式,進(jìn)行遠(yuǎn)程服務(wù)器的連接。
    2014-01-01
  • Python讀寫及備份oracle數(shù)據(jù)庫操作示例

    Python讀寫及備份oracle數(shù)據(jù)庫操作示例

    這篇文章主要介紹了Python讀寫及備份oracle數(shù)據(jù)庫操作,結(jié)合實(shí)例形式分析了Python針對(duì)Oracle數(shù)據(jù)庫操作的相關(guān)庫安裝,以及使用cx_Oracle與pandas庫進(jìn)行Oracle數(shù)據(jù)庫的查詢、插入、備份等操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-05-05
  • 利用Python操作MongoDB數(shù)據(jù)庫的詳細(xì)指南

    利用Python操作MongoDB數(shù)據(jù)庫的詳細(xì)指南

    MongoDB是由C++語言編寫的非關(guān)系型數(shù)據(jù)庫,是一個(gè)基于分布式文件存儲(chǔ)的開源數(shù)據(jù)庫系統(tǒng),其內(nèi)容存儲(chǔ)形式類似JSON對(duì)象,下面這篇文章主要給大家介紹了關(guān)于利用Python操作MongoDB數(shù)據(jù)庫的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • python繪制橫豎條形圖的方法

    python繪制橫豎條形圖的方法

    這篇文章主要為大家詳細(xì)介紹了python繪制橫豎條形圖的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 基于Python實(shí)現(xiàn)在線加密解密網(wǎng)站系統(tǒng)

    基于Python實(shí)現(xiàn)在線加密解密網(wǎng)站系統(tǒng)

    在這個(gè)數(shù)字化時(shí)代,數(shù)據(jù)的安全和隱私變得越來越重要,所以本文小編就來帶大家實(shí)現(xiàn)一個(gè)簡單但功能強(qiáng)大的加密解密系統(tǒng),并深入探討它是如何工作的,有興趣的可以了解下
    2023-09-09
  • Python3實(shí)現(xiàn)對(duì)列表按元組指定列進(jìn)行排序的方法分析

    Python3實(shí)現(xiàn)對(duì)列表按元組指定列進(jìn)行排序的方法分析

    這篇文章主要介紹了Python3實(shí)現(xiàn)對(duì)列表按元組指定列進(jìn)行排序的方法,結(jié)合實(shí)例形式分析了Python3針對(duì)列表排序的常見操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-12-12

最新評(píng)論

出国| 平陆县| 阜新| 皋兰县| 灌南县| 沁水县| 长岛县| 华亭县| 吴江市| 株洲市| 维西| 嵩明县| 石柱| 新津县| 象州县| 文安县| 湘潭县| 渝中区| 汉阴县| 曲松县| 南和县| 屏南县| 鹿泉市| 嘉善县| 海城市| 健康| 和田县| 楚雄市| 吴旗县| 临西县| 台中市| 贺兰县| 偃师市| 常熟市| 焉耆| 黎平县| 康定县| 眉山市| 临邑县| 南投市| 崇州市|