我是编程新手,我正在阅读一本python书。我想让多个机器人在地图中运行。地图中将有多个Robot(s)。我需要对地图类做些什么让它以这种方式工作?我知道这很模糊,但我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()
如果我没有'Map'类,这可以正常工作但我无法使地图类工作。我得到了帮助制作地图课程,但我无法使用我的机器人课程。
答案 0 :(得分:0)
您有Robot
作为Map
的子类;这不是应该如何使用继承。想想“子类”而不是“子类”。
考虑一下:
class Animal:
def eat(self, food):
print "mmm"
class Human(Animal):
def speak(self, words):
print words
人类是动物;它可以说话,但它可以吃。
机器人显然不是地图。我相信你正在考虑一个有机器人的地图,如果你让Robot
不是一个子类,它应该可以工作。哦,并将self.robot
更改为self.robots
。