Python 如何组织我的代码。类、函数等?
我正在努力想办法组织这里的事情。 我正在制作一个比赛游戏。有运动员和赛道。玩家有名字、年龄等属性。比赛课程也有一系列属性,包括难度。我想做的一件事是,当一个球员跑一个球场时,他们的能量水平会随着球场的难度而下降。我感到困惑的是,因为难度是球场的一个属性,而能量水平是球员的一个属性,我该如何影响这两者 以代码为例Python 如何组织我的代码。类、函数等?,python,Python,我正在努力想办法组织这里的事情。 我正在制作一个比赛游戏。有运动员和赛道。玩家有名字、年龄等属性。比赛课程也有一系列属性,包括难度。我想做的一件事是,当一个球员跑一个球场时,他们的能量水平会随着球场的难度而下降。我感到困惑的是,因为难度是球场的一个属性,而能量水平是球员的一个属性,我该如何影响这两者 以代码为例 class Player(): energy_level = 0 def __init__(self, name, ability) self.name
class Player():
energy_level = 0
def __init__(self, name, ability)
self.name = name
self.ability = ability
def run(self):
#code to run course here, reduces energy level when running course. Energy level is reduced based on player ability
class Course():
def __init__(self, name, difficulty)
self.name = name
self.difficulty = difficulty
player1 = Player("Bob", 90)
course1 = Course("Advanced Track", 15)
也许我把这一切都搞错了?这门课需要是一门课吗
谢谢您的意见。我如何影响这两个方面? 这可以通过将Course类型的对象传递给
run
函数来实现,如下所示:
class Player():
energy_level = 0
def __init__(self, name, ability)
self.name = name
self.ability = ability
def run(self, course):
#use course.difficulty to reduce self.energy_level
class Course():
def __init__(self, name, difficulty)
self.name = name
self.difficulty = difficulty
player1 = Player("Bob", 90)
course1 = Course("Advanced Track", 15)
player1.run(course1) # this will pass course1 to the run function and run will reduce the energy level according to the difficulty of course1
我如何影响这两者? 这可以通过将Course类型的对象传递给
run
函数来实现,如下所示:
class Player():
energy_level = 0
def __init__(self, name, ability)
self.name = name
self.ability = ability
def run(self, course):
#use course.difficulty to reduce self.energy_level
class Course():
def __init__(self, name, difficulty)
self.name = name
self.difficulty = difficulty
player1 = Player("Bob", 90)
course1 = Course("Advanced Track", 15)
player1.run(course1) # this will pass course1 to the run function and run will reduce the energy level according to the difficulty of course1
您可以使课程成为玩家类的成员
class Player():
course = null;
energy_level = 0
def __init__(self, name, ability)
self.name = name
self.ability = ability
self.course1 = Course("Advanced Track", 15)
def run(self):
#code to run course here, reduces energy level when running course. Energy level is reduced based on player ability
#change self.energy based on self.course1.difficulty
当然,这过于简单化了。您需要添加方法来打开新课程,而不是在构造函数中硬编码。您可以使课程成为玩家类的成员
class Player():
course = null;
energy_level = 0
def __init__(self, name, ability)
self.name = name
self.ability = ability
self.course1 = Course("Advanced Track", 15)
def run(self):
#code to run course here, reduces energy level when running course. Energy level is reduced based on player ability
#change self.energy based on self.course1.difficulty
当然,这过于简单化了。您需要添加方法来打开新课程,而不是在构造函数中硬编码。课程仍然可以是单独的类。在玩家课程中增加一门课程(或一系列课程)怎么样?只是一个想法。制作另一个继承玩家类和课程类的类。一旦你完成了任务,考虑一下设计评审。他们可能会给出更好的建议,从整体上看,而不仅仅是这些具体问题。发布前请务必阅读指导原则(即,代码必须有效),或者第三个种族等级如何,该等级使用一组玩家和一个球场。移动代码以在那里运行课程(或比赛)。无论如何,我同意JETM的观点,这应该在代码审查中进行。@mikey和Martin Jakubik,你能再详细说明一下吗?具体来说,第三类的对象是什么样子的?假设我创建了一个名为Event的第三个类,它继承了Player和Course类。在那个事件类中,我创建了一个“运行课程”的方法,它降低了能量级别。我的对象会是什么样子?当然仍然可以是一个单独的类。在玩家课程中增加一门课程(或一系列课程)怎么样?只是一个想法。制作另一个继承玩家类和课程类的类。一旦你完成了任务,考虑一下设计评审。他们可能会给出更好的建议,从整体上看,而不仅仅是这些具体问题。发布前请务必阅读指导原则(即,代码必须有效),或者第三个种族等级如何,该等级使用一组玩家和一个球场。移动代码以在那里运行课程(或比赛)。无论如何,我同意JETM的观点,这应该在代码审查中进行。@mikey和Martin Jakubik,你能再详细说明一下吗?具体来说,第三类的对象是什么样子的?假设我创建了一个名为Event的第三个类,它继承了Player和Course类。在那个事件类中,我创建了一个“运行课程”的方法,它降低了能量级别。我的物体会是什么样子?