私の問題は、エージェントが 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) の代わりに go to (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;
}
}
このようなルールを処理する簡単な方法を知っている人はいますか?