10x10 のグリッドを作成し、ロボットを位置 (10,1) に配置します (左下)。私はこのロボットが前進、左/右に曲がり、グリッド内のオブジェクトをピックアップ/配置できるようにしたいと考えています. 任意の位置に配置すると、次のように、この位置に配置されたオブジェクトの数を示すグリッドに数字が表示されます。
..........
...1......
..2.......
....3.....
..........
..........
......9...
.....4....
.........1
..........
グリッド内にロボットは表示されません。私は2つのクラスを持っています。クラス ロボット:
public class Robot {
private Area area;
private Robot rob;
public Robot(Area area){
this.area = area;
rob = new Robot(area);
}
public void Right(){
}
public void Left(){
}
public void Forward(){
}
public void Put(){
}
public void PickUp(){
}
public (?) getPosition(){ // should return robot's position
}
}
クラスエリア:
private int numberOfObjects;
private Robot robot;
private static final int X = 10;
private static final int Y = 10;
private Object [][] area; // grid
public Area(){ // defines a grid and robot
area = new Area[X][Y];
for(int a=0;a<X;a++){
for(int b=0;b<Y;b++)
area[a][b]=".";
}
numberOfObjects = 0; // grid is initially empty
Area ar = new Area();
robot = new Robot(ar);
}
public void Put(int x,int y){ // put the object to position (x,y)
area[x][y]=numberOfObjects++;
}
public void PickUp(int x,int y){ // pick up the object in position (x,y)
if(area[x][y]!=null){
area[x][y]=numberOfObjects--;
}
}
public void PrintAGrid(){
for(int r=0;r<X;r++){
for(int c=0;c<Y;c++)
System.out.print(area[r][c]+" ");
System.out.println();
}
System.out.println();
}
}
ロボットを位置 (10,1) に配置するにはどうすればよいですか? 方向を宣言して設定するにはどうすればよいですか (つまり、右側に)? 他のメソッドを書くのは簡単だと思うので、私はそれに焦点を合わせません。