私はプログラミングが初めてで、私はちょうどPythonの本を読んでいます。マップ内で複数のロボットを走らせたいマップには複数のロボットが存在します。このように動作させるにはマップクラスに何をする必要がありますか?私はこれが漠然としていることを知っていますが、私は14歳であり、これを説明しようとしています親クラスの制約で複数の子クラスを実行する方法
class Map:
def __init__(self):
self.robot = []
def add_robot(self, robot):
self.robot.add(Robot)
def is_occupied(self, x, y):
for r in self.robot:
if r.xpos == x and r.ypos == y:
return True
return False
class Robot(Map):
def __init__(self):
self.xpos = 0
self.ypos = 0
def step(self, axis):
if axis in "xX":
if self.is_occupied(self.xpos+1, self.ypos):
self.xpos += 1
print "step X axis"
elif axis in "yY":
self.ypos += 1
def walk(self, axis, steps=2):
for i in range(steps):
self.step(axis)
def get_pos(self):
print "X:%i Y:%i" % (self.xpos, self.ypos)
robot1 = Robot()
robot1.walk("x", 5)
robot1.get_pos()
「マップ」クラスがない場合、これはうまくいきますが、マップクラスを動作させることができません。私はマップクラスを作る助けを得たが、私はそれを私のロボットクラスで動作させることができません。
マップをロボットでサブクラス化することは意味がありません。あなたはRobotをマップの一種と考えますか? –
また、 'list'に項目を追加する方法は' add() 'ではなく' append() 'です。 'add'はあなたにAttributeErrorを与えます。 –