gpt4 book ai didi

java - 迷宫 - 随机鼠标算法未按预期工作

转载 作者:行者123 更新时间:2023-12-01 22:38:22 27 4
gpt4 key购买 nike

我正在实现随机鼠标算法来探索迷宫。一段时间后,算法陷入无限循环。我调试了一下,它似乎在一条 channel 之间来回卡住了。

请看一下我的算法实现。

这是我的代码:方向是相对于机器人的。

public boolean drive2Exit() throws Exception {
Turn[] turn = {Turn.LEFT, Turn.RIGHT};
while (!robot.isAtGoal() && robot.getBatteryLevel() != 0) {
if (robot.distanceToObstacle(Direction.FORWARD) != 0) {
try {
robot.move(1);
} catch (Exception e) {
}
} else {
int index = randomGenerator.nextInt(turn.length);
try {
robot.rotate(turn[index]);
} catch (Exception e) {
}
}
}
if (robot.isAtGoal())
return true;
return false;
}

最佳答案

假设你有一个T形 channel :

┌───────┐
│ │
└──┐ ┌──┘

你的鼠标进入其中,看到一堵墙,然后变成 T 形的一侧。

┌───────┐
│ ┌> │
└──┐ ┌──┘

然后它撞到了那一侧末端的墙壁。它会转动——无论向左还是向右。仍然看到一堵墙。于是它再次转动——直到它最终向后转动。到目前为止一切顺利。

┌───────┐
│ <-│
└──┐ ┌──┘

但是,由于它看不到墙,它总是会向前移动,直到 T 形的另一边。同样的事情会一遍又一遍地发生。

┌───────┐
│-> │
└──┐ ┌──┘

你的程序没有做出任何选择会导致它决定转回T形腿,因为当他到达那里时,它前面没有障碍物,那么它为什么要转弯呢?

┌───────┐
│ ↴ │ ** This option doesn't exist **
└──┐ ┌──┘

关于java - 迷宫 - 随机鼠标算法未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26567670/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com