python类和对象基础应用

照例每日一撸:

今天主要是用python实现摇色子的简单应用,养成面向对象的思维。

class Game:   #游戏作为一个类
    def __init__(self,player1,player2):
        self.player1 = player1
        self.player2 = player2
        print("游戏开始")

    def start(self):
        self.player1.cast()
        self.player2.cast()
        print(self.player1)  #调用下方__str__()方法实现打印信息
        print(self.player2)

class Player:   #玩家也是一个类
    def __init__(self,name,sex,*dice):
        self.name = name
        self.sex = sex
        self.dices = dice

    def cast(self):  #一个抛色子的方法
        for dice in self.dices:  #由于最后存储在一个元祖里,所以可以用循环遍历
            dice.move()

    def __str__(self):  #一个可以实现print就能把内存地址,打印为可读的魔术方法
        play_count_list = [self.dices[0].count,self.dices[1].count,self.dices[2].count]
        return "姓名为%s,投掷筛子的点数为:%s"%(self.name,str(play_count_list))  #通过返回实现

    def guess(self):  #后期通过多线程实现
        pass

class Dice:  #筛子是另一个类
    def __init__(self):  
        self.count = 0   #初始点数为0

    def move(self):   #运用随机数,给出一个(1,6)之间的数字,实现一个摇色子的方法
        self.count = random.randint(1,6)
#6个筛子对象
d1 = Dice()
d2 = Dice()
d3 = Dice()
d4 = Dice()
d5 = Dice()
d6 = Dice()
#2个玩家
p1 = Player("马冬梅","女",d1,d2,d3)
p2 = Player("夏洛","男",d4,d5,d6)
#玩5次
for i in range(1,6):
    print("第%s次游戏的情况如下:"%i)
    game = Game(p1,p2)
    game.start()
    print 

最终实现效果如下:

第1次游戏的情况如下:
游戏开始
姓名为马冬梅,投掷筛子的点数为:[6, 2, 1]
姓名为夏洛,投掷筛子的点数为:[2, 3, 6]


第2次游戏的情况如下:
游戏开始
姓名为马冬梅,投掷筛子的点数为:[1, 4, 3]
姓名为夏洛,投掷筛子的点数为:[5, 6, 2]


第3次游戏的情况如下:
游戏开始
姓名为马冬梅,投掷筛子的点数为:[2, 6, 3]
姓名为夏洛,投掷筛子的点数为:[3, 3, 1]


第4次游戏的情况如下:
游戏开始
姓名为马冬梅,投掷筛子的点数为:[6, 2, 5]
姓名为夏洛,投掷筛子的点数为:[3, 2, 6]


第5次游戏的情况如下:
游戏开始
姓名为马冬梅,投掷筛子的点数为:[3, 3, 5]
姓名为夏洛,投掷筛子的点数为:[5, 2, 6]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值