注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
本帖最后由 bighuyou 于 2020-8-24 14:54 编辑
我想了一晚上,外加各种试验,还是没明白为什么要track robot的面向的direction
为什么不能只loop {-1, 0}, {0, 1}, {1, 0}, {0, -1},而要每次backTrack时首先要试着往同一个方向走
就比如如果robot 从左向右移动一格之后,进入新的backTrack, 面向右边。此时如果不track direction的话第一个移动是{-1, 0}, 也就是往上移动。此时robot.move() = true,为啥是true。啊好抽象
补充内容 (2020-8-24 23:21):
我昨晚在群里请教了大神总结一下为什么:
比如我举个例子,robot面向右,我们却给了row - 1, col不变的指令。这时候robot.move() 在我们看不见的room上是向右移动了的,因为robot如果不旋转,move()只会像面向的方向走一格。也就是说,我们不track direction的话,我们记录的那份path和真正的path是不一样的,也就是lost track了。需要direction的最根本的原因还是因为room并没有expose给我们。 |