寻找有效的功能来确定机器人当前位置前方的位置

时间:2015-02-16 02:25:23

标签: java performance methods formula

在我的程序中,我的机器人的标题定义为整数值,0表示东,1表示南,2表示西,3表示北。我还有一个2D数组网格[y] [x],其中包含位置(x,y)上的方形信息。 (0,0)是网格中左下方的位置。

我的问题是,如果我知道我的机器人标题是东(例如)那么我怎样才能有效地找到机器人前方的方块。我不想通过为四个标题中的每一个定义下一个方块来使用switch语句,因为我需要经常在我的代码中使用这个方法,并且有效地实现它会很好。

使用简单的switch语句后,我尝试了以下(机器人处于位置(x,y)):

if(heading%2 == 0)
//then position in front of robot is (x + (heading+2)%4 - 1, y)
if(heading%2 == 1)
//then position in front of robot is (x, y + heading - 2)

该代码用于根据标题的整数值在机器人前面的网格中找到位置,并且已经减少到2个案例。是否有任何可能的方法来找到机器人前面的位置而无需使用箱子。最好不要求我改变东,南,北,西的标题值。

0 个答案:

没有答案