考虑我有一些环境(让它命名为world
)和一些属于世界的实体(让我们将它们命名为bot
)。我希望机器人能够相互交互(例如,获取位于机器人视野中的机器人列表)。但如果机器人不了解他们的环境,他们也不了解其他人。所以问题是 - 这种交互如何在现实世界的应用程序中实现?
我看到的解决方案是给机器人指向世界的指针,但我发现它非常不合逻辑,因为每个机器人在与世界其他机器人交互时都会拥有相同的“权利”。
此时我使用的解决方案是QT信号&amp;插槽概念。每个机器人都有一个信号queryNeighbours(Bot *requester, QVector<Bot *> *result)
,世界上有一个信箱giveNeighbours(Bot *requester, QVector<Bot *> *result)
。所以,然后我将机器人的信号与世界的插槽连接起来,当机器人需要得到邻居时,它只是让它们像:
QVector<Bot *> bots;
emit queryBots(this, &bots);
但是,我认为有一些模式,实现我需要的,所以我不需要QT。
答案 0 :(得分:1)
也许你可以使用一个课程,其唯一的目的是处理机器人之间的关系,并让世界和机器人都能使用该课程:)