0

私の問題は、エージェントが 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;
    }
}

このようなルールを処理する簡単な方法を知っている人はいますか?

4

1 に答える 1