class Bug {
// An ant is represented by the coordinates of its location,
// and the direction it is facing.
Integer x;
Integer y;
Dir dir;
enum Dir { E,W,N,S }
}
Bug(Integer x, Integer y, Dir dir) {
this.x = x;
this.y = y;
this.dir = dir;
}}
class BugWorld {
Integer theBreadth, theHeight;
Board board;
Bug bug;
BugWorld(Integer breadth, Integer height) {
board = new board(breadth, height);
bug = new Bug(breadth/2, height/2, Ant.Direction.Y);
theBreadth = breadth;
theHeight = height;
}
我已经拥有以下内容:
Status status(Integer x, Integer y) {
return board[x][y];
}
void update(Integer x, Integer y) {
board[x][y].next();
}
下面这部分是我遇到麻烦的地方:
/* Take the world of the bug to the next step. */
void step() {
// 1) Get the state at the present bug position.
//I've done the following (next line) so far.
Bug status(Integer x, Integer y); ...?
// 2) Change the 'status' at that position.
.............?
}
只是将这些组合在一起,我遇到了麻烦。
答案 0 :(得分:0)
很难理解你想要做什么,但我认为这就是你想要的
void step(){
//get the location of the bug
int x = bug.x;
int y = bug.y;
//gets the status of the location of the bug
Status s = status(x,y);
//move the bug, or do something based on the status of the place
//update the status of the location the bug was originally on
update(x,y)
}