我想製作一個10x10網格並將機器人置於位置(10,1)(左下角)。我希望這個機器人能夠向前移動,左轉/右轉以及拾取/放入網格物體。擺在任何位置的時候,應該有一個網格,顯示有多少個對象放在這個位置號碼,就像這樣:機器人在網格中的位置和方向
..........
...1......
..2.......
....3.....
..........
..........
......9...
.....4....
.........1
..........
我們將不會看到機器人在網格中。我有兩個班。類機器人:
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)的機器人?我如何申報和設定其方向(即在右邊)?我想這會很容易寫出其他方法,所以我不關注它。
方法左右手應該只開啓右/左機器人,不動它。有方法Forward()隨機器人移動。無論如何,謝謝你的幫助。我很感激。 – marek
@marek:對不起,我錯過了你的問題的一部分。我在幾分鐘內更新我的答案。 – Mohayemin
是的,現在看起來很好。我會做剩下的程序。非常感謝你。 – marek