【发布时间】:2013-03-25 17:16:41
【问题描述】:
我正在编写一个 Java 程序,它允许用户向机器人发送消息,告诉它在 5x5 网格上去哪里。例如,如果我发送它'FRFFLF',这意味着向前,向右跑 90 度,向前两次,向左转 90 度,然后向前。然后程序返回机器人在网格上的新位置。
我不是在寻求解决方案,只是对我的方法的一些指导。是否已经有可用于此类程序的设计模式(所以我不会重新发明轮子)或者是否可以从头开始编写?
网格的底部是 (0,0),顶部是 (4,4)。
我认为 Robots 位置可以定义为 Java Point 类,而网格将是 2D 数组?
以下内容可以作为开始吗?
public Point forward(Point p) {
p.x +=1;
return p;
}
有没有人尝试过编写这样的程序?有可能吗?
编辑:我考虑过以下问题: 首先,我需要机器人的方向及其当前位置。从那里我将封装网格,围绕边界创建一些规则。基本上,我将更新机器人的位置,解释传递给它的命令并更新基于机器人的位置。显然,机器人只需要在网格范围内移动。
【问题讨论】:
-
如果你按照上面的实现调用 forward() 会发生什么,但机器人已经在 (4,4)。 :)
-
@selbie 我计划在每次移动之前进行边界检查。
-
@selbie:我认为更重要的是“前进”总是将机器人移到正确的位置。
-
如果它面向左/右会发生什么?
-
@Aboutblank 我开始的那一点还处于起步阶段。它不会以目前的形式工作。这不应该是我试图解决的问题。只是一种建议方法的方式。