Java 寻找一个有效的函数来确定一个正方形在当前位置前面的位置

Java 寻找一个有效的函数来确定一个正方形在当前位置前面的位置,java,performance,methods,formula,Java,Performance,Methods,Formula,在我的程序中,我的机器人有一个定义为整数值的航向,0代表东方,1代表南方,2代表西方,3代表北方。此外,我还有一个二维阵列网格[y][x],其中包含关于x,y位置的正方形的信息。0,0是栅格中左下角正方形的位置 我的问题是,如果我知道我的机器人的航向是东,那么我如何有效地定位机器人前面的广场。我不想仅仅通过为四个标题中的每一个定义下一个方框来使用switch语句,因为我需要在代码中经常使用这个方法,如果有一个高效的实现就好了 在使用一个简单的开关语句后,我尝试了以下操作:机器人处于位置x,y:

在我的程序中,我的机器人有一个定义为整数值的航向,0代表东方,1代表南方,2代表西方,3代表北方。此外,我还有一个二维阵列网格[y][x],其中包含关于x,y位置的正方形的信息。0,0是栅格中左下角正方形的位置

我的问题是,如果我知道我的机器人的航向是东,那么我如何有效地定位机器人前面的广场。我不想仅仅通过为四个标题中的每一个定义下一个方框来使用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种情况。是否有任何可能的方法可以在不需要用例的情况下找到机器人前面的位置。最好是不需要我更改东、南、北、西标题值的标题。

为什么不这样做一次,将其封装到一个方法中,然后将标题与一个参数一起输入到方法中。那么你就没有重复的代码,可以像预期的那样使用OOP的思想。开关有什么低效的地方?我需要找到机器人前面的位置好几次,我给出的例子只检查了两种情况,而不是正常情况下的4种情况switch@DavidJones我已经实现了,但是我想知道是否有人能帮我想出一个不同的公式,它不需要单独的案例。我想要一个公式f,比如fx,y,heading=x+xIncrement,y+yIncrement。但我的例子给出了两种不同情况下的两个不同公式