我正在尝试为几个朋友创建一个足球比赛计划。我目前有一个实例化团队的类,我正在编写匹配实例化类。
我目前拥有的是:
class Team(object):
def __init__(self, name, games=0, points=0, goals=0, wins=0, loses=0):
self.name = name
self.points = points
self.games = games
self.goals = goals
self.wins = wins
self.loses = loses
def win(self):
self.points += 3
self.wins += 1
self.games += 1
def lose(self):
self.points += 1
self.loses += 1
self.games += 1
def ratio(self):
print "(Wins/Loses/Games)\n ", self.wins, "/", self.loses, "/", self.games
class Match(object):
def __init__(self, teamagoals, teambgoals):
self.teamagoals = teamagoals
self.teambgoals = teambgoals
def playgame(teama, teamb):
#conditional statements which will decide who wins
alpha = Team("George's Team")
beta = Team("Josh's Team")
gamma = Team("Fred's Team")
此时我遇到了关于如何做到这一点的问题。根据我的问题,我正在尝试 - 在Match()类中 - 涉及团队类的两个实例。例如,我想在Match()中调用一个函数,并指定团队alpha和团队gamma相互竞争,然后当他们赢或输时修改他们的实例对应点,游戏等值。
我可以这样做的方式是什么?是否可以通过将所有Team()实例放入列表,然后将该列表导入Match()类?或者还有其他更优雅的方式吗?请帮忙。
答案 0 :(得分:0)
我不确定你打算如何选择哪支球队相互比赛,但是说这是由一个功能完成的。然后,匹配可以实现如下:
class Match(object):
def __init__(self, teama, teamb):
self.teama = teama
self.teamb = teamb
def play(self):
a_points = 0
b_points = 0
# code/function call to decide how many points each team gets.
self.teama.points += a_points
self.teamb.points += b_points
if a_points > b_points:
self.teama.wins += 1
else if b_points > a_points:
self.teamb.wins += 1
else:
# code for when the teams draw
我不确定你打算如何构建一些功能,比如决定团队获得多少分,但这是一个希望有用的框架/给你关于如何做事的想法。
跟进你的评论,如果你希望能够通过在课外创建的特定团队,你可以这样做:
match1 = Match(gamma, alpha)
。这将创建一个新的匹配实例,其中团队的'gamma'和'alpha'将被修改。 (teama
和teamb
在类中将引用这些对象。)