日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实现麻将牌发牌操作

發布時間:2024/3/7 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实现麻将牌发牌操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
import randomclass Card:# 創建5個列表,總牌堆和四名玩家各一個牌堆cards = []player1 = []player2 = []player3 = []player4 = []def __init__(self, name):self.name = namedef __str__(self):return self.name# 使用類方法創建一副麻將牌(初始化牌堆) @classmethoddef init_cards(cls):# 創建萬字牌元祖wan = ("一萬", "二萬", "三萬", "四萬", "五萬", "六萬", "七萬", "八萬", "九萬","一萬", "二萬", "三萬", "四萬", "五萬", "六萬", "七萬", "八萬", "九萬","一萬", "二萬", "三萬", "四萬", "五萬", "六萬", "七萬", "八萬", "九萬","一萬", "二萬", "三萬", "四萬", "五萬", "六萬", "七萬", "八萬", "九萬")# 創建筒字牌元祖tong = ("幺雞", "二筒", "三筒", "四筒", "五筒", "六筒", "七筒", "八筒", "九筒","幺雞", "二筒", "三筒", "四筒", "五筒", "六筒", "七筒", "八筒", "九筒","幺雞", "二筒", "三筒", "四筒", "五筒", "六筒", "七筒", "八筒", "九筒","幺雞", "二筒", "三筒", "四筒", "五筒", "六筒", "七筒", "八筒", "九筒","幺雞", "二筒", "三筒", "四筒", "五筒", "六筒", "七筒", "八筒", "九筒")# 創建條字牌元祖tiao = ("一條", "二條", "三條", "四條", "五條", "六條", "七條", "八條", "九條","一條", "二條", "三條", "四條", "五條", "六條", "七條", "八條", "九條","一條", "二條", "三條", "四條", "五條", "六條", "七條", "八條", "九條","一條", "二條", "三條", "四條", "五條", "六條", "七條", "八條", "九條")# 創建風牌元祖wind = ("東風", "西風", "南風", "北風", "東風", "西風", "南風", "北風","東風", "西風", "南風", "北風", "東風", "西風", "南風", "北風","東風", "西風", "南風", "北風", "東風", "西風", "南風", "北風","東風", "西風", "南風", "北風", "東風", "西風", "南風", "北風")word = ("紅中", "發財", "白板", "紅中", "發財", "白板","紅中", "發財", "白板", "紅中", "發財", "白板","紅中", "發財", "白板", "紅中", "發財", "白板","紅中", "發財", "白板", "紅中", "發財", "白板")# 分別遍歷5種花色牌,為所有136張牌創建單張牌對象,并添加到總牌堆列表中for wa in wan:a = Card(wa)cls.cards.append(a)for to in tong:b = Card(to)cls.cards.append(b)for ti in tiao:c = Card(ti)cls.cards.append(c)for wi in wind:d = Card(wi)cls.cards.append(d)for wo in word:e = Card(wo)cls.cards.append(e)# 展示總牌堆 @classmethoddef show_cards(cls):for card in cls.cards:print(card, end=" ")print()# 洗牌 @classmethoddef wash_cards(cls):idxx = random.randint(1, 136)for idx in range(136):cls.cards[idx], cls.cards[idxx] = cls.cards[idxx], cls.cards[idx] @classmethoddef send_cards(cls):# 發牌模式為每人輪流一次性拿4張牌,循環3次,最后每人輪流拿1張牌,每人拿到13張牌x = random.randint(2, 12) # 生成隨機數,完成擲色子的動作,從而決定拿牌位置for _ in range(3):# 每個玩家一次性拿4張牌for _ in range(4):cls.player1.append(cls.cards.pop(2 * x))for _ in range(4):cls.player2.append(cls.cards.pop(2 * x))for _ in range(4):cls.player3.append(cls.cards.pop(2 * x))for _ in range(4):cls.player4.append(cls.cards.pop(2 * x))# 每個玩家各拿1張牌cls.player1.append(cls.cards.pop(2 * x))cls.player2.append(cls.cards.pop(2 * x))cls.player3.append(cls.cards.pop(2 * x))cls.player4.append(cls.cards.pop(2 * x)) @classmethoddef show_player(cls):print("玩家一:", end="")for card in cls.player1:print(card, end=" ")print()print("玩家二:", end="")for card in cls.player2:print(card, end=" ")print()print("玩家三:", end="")for card in cls.player3:print(card, end=" ")print()print("玩家四:", end="")for card in cls.player4:print(card, end=" ")print() Card.init_cards() Card.show_cards() Card.wash_cards() Card.show_cards() Card.send_cards() Card.show_player()復制代碼

總結

以上是生活随笔為你收集整理的实现麻将牌发牌操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。