我的问题是当我的经纪人到达0,0,0,9等我试图阻止它去9,0或9,9等 在这个例子中像这样
(0,0) N -1.0 (9,0)
(9,0) N -1.0 (8,0)
(8,0) W -1.0 (8,9)
我希望它能够在网格之间移动,而不是通过回到网格中来做空。例如,而不是goind形式(0,0)到(9,0)转到(0,1)0r(1,0)等。
我尝试了类似这段代码的简单方法,检查x和y值是否大于行数和列数的x和y值,或者x和y是否小于0
public boolean Notvalid(int x, int y) {
return (x > cr.NUM_ROWS || y > cr.NUM_COLUMNS || x < 0 || y < 0);
}
并在设置x和y坐标时调用此方法
public GridState(int xpos, int ypos) {
if (!Notvalid(x, y)) {
x = xpos;
y = ypos;
} else {
x = cr.START_ROW;
y = cr.START_COL;
}
}
有人知道更简单的方法来处理这样的规则吗?
答案 0 :(得分:0)
您的代码似乎有三个问题:
0
到9
而cr.NUM_ROWS
为10
,则应使用x >= cr.NUM_ROWS
或x > cr.NUM_ROWS - 1
代替{{} 1}}。 (列相同)x > cr.NUM_ROWS
和x
),而不是代理将要去的位置({{ 1}},y
)。xpos
,您似乎正在做您不想做的事情,即将代理设置为ypos
时x = cr.START_ROW
。试试这个:
0