0

我是编程新手,我只是在看一本 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()

如果我没有“地图”类,这工作得很好,但我不能让地图类工作。我得到了制作地图类的帮助,但我无法让它与我的机器人类一起使用。

4

1 回答 1

0

你有Robot一个子类Map; 这不是应该使用继承的方式。考虑“子类”而不是“子类”。

考虑一下:

class Animal:

    def eat(self, food):
        print "mmm"


class Human(Animal):

    def speak(self, words):
        print words

人就是动物;它会说话,但它会吃东西。

机器人显然不是地图。我相信你正在考虑一个有机器人的地图,如果你Robot不做一个子类,它应该可以工作。哦,更改self.robotself.robots.

于 2012-05-13T16:53:06.327 回答