在我的程序中,我的机器人的标题定义为整数值,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个案例。是否有任何可能的方法来找到机器人前面的位置而无需使用箱子。最好不要求我改变东,南,北,西的标题值。