python模拟斗地主(@classmethod的用法)

1.代码如下:
import random
class Poke():
poke = [] # 扑克牌牌堆
p1 = [] # 玩家一牌堆
p2 = [] # 玩家二牌堆
p3 = [] # 玩家三牌堆
last = None # 底牌牌堆
def init(self,f,num): # 初始化牌堆
self.flower = f # 花色
self.num = num # 点数
def str(self):
return “%s%s” % (self.flower,self.num) # 返回牌值
@classmethod
def init(cls): # 定义牌堆
ph = (“♥”,“♠”,“♣”,“♦”) # 花色元组
pnum = (“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“10”,“J”,“Q”,“K”,“A”) # 点数元组
king = {“big”:“大王”,“small”:“小王”} # 大小王
for p in ph: # 循环遍历花色
for _nump in pnum: # 循环遍历点数
cls.poke.append(Poke(p,_nump)) # 装牌
cls.poke.append(Poke(king[“big”],"")) # 装大王
cls.poke.append(Poke(king[“small”],"")) # 装小王
@classmethod
def wash(cls): # 洗牌
random.shuffle(cls.poke)
@classmethod
def send(cls): # 发牌
for _ in range(0,17): # 三个人每人发17张牌
cls.p1.append(cls.poke.pop(0)) # 玩家一发牌
cls.p2.append(cls.poke.pop(0))
cls.p3.append(cls.poke.pop(0))
cls.last= tuple(cls.poke) # 最后三张牌做底牌
@classmethod
def show(cls): # 展示牌
print(“玩家1:”)
for pokes in cls.p1:
print(pokes,end = " “)
print()
print(“玩家2:”)
for pokes in cls.p2:
print(pokes, end=” “)
print()
print(“玩家3:”)
for pokes in cls.p3:
print(pokes, end=” “)
print()
print(“底牌:”)
for pokes in cls.last:
print(pokes, end=” ")
print()

Poke.init()
Poke.wash()
Poke.send()
Poke.show()

2.结果显示如下:
玩家1:
♠7 ♦J ♦A ♦6 ♥A ♦10 ♦K ♣2 ♣7 小王 ♣10 ♦3 ♥2 ♣A ♥8 ♥5 ♣4
玩家2:
♦4 ♠2 ♠3 ♠K ♦Q ♠4 ♠J ♣6 ♥9 ♦7 大王 ♠6 ♣Q ♥Q ♣9 ♥6 ♠10
玩家3:
♠A ♥4 ♠9 ♣3 ♦8 ♣J ♠Q ♠8 ♥K ♦5 ♥7 ♥3 ♣8 ♣K ♥J ♦9 ♥10
底牌:
♦2 ♣5 ♠5
此段代码来自七月在线习题讲解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值