根据业务需求抽象出你要定义的类,根据业务需求分析每个对象的职责,然后在类中定义职责所对应的函数或者方法。
eg: 每次游戏有两个人,每人三颗骰子(dice),估计点数的个数。
分析: 有多少个类?每个类中有多少个对象?
# -*- coding: utf-8 -*-
import random
class Game:
def __init__(self,player1,player2):
self.player1 = player1
self.player2 = player2
print("游戏初始化完成,可以开始")
def start_game(self):
self.player1.cast()
self.player2.cast()
print(self.player1)
print(self.player2)
def get_win(self):
self.player1.guess_dice()
self.player2.guess_dice()
# 判断谁赢了
class Player:
def __init__(self,name,sex,*dice):
self.name = name
self.sex = sex
self.dices = dice # 表示该玩家拥有的骰子列表(元祖)
def __str__(self):
play_dice_count_list = [self.dices[0].count,
self.dices[1].count,
self.dices[2].count]
return "姓名为:%s,点数信息为:%s" % (self.name, str(play_dice_count_list))
# 玩家抛骰子
def cast(self):
for dice in self.dices:
dice.move()
def guess_dice(self):
return (4,2)
class Dice:
def __init__(self):
self.count = 0
def move(self):
self.count = random.randint(1,6) # 左闭右闭型
d1=Dice()
d2=Dice()
d3=Dice()
d4=Dice()
d5=Dice()
d6=Dice()
p1 = Player("player1","男",d1,d2,d3)
p2 = Player("player2","女",d4,d5,d6)
for i in range(1,6):
print("第%d次游戏的情况 -------"%i)
game=Game(p1,p2)
game.start_game()