private
void
run(){
setData(-
1
, -
1
);
go(data.getEntranceX(), data.getEntranceY()+
1
);
setData(-
1
, -
1
);
}
private
void
go(
int
x,
int
y){
if
(!data.inArea(x,y))
throw
new
IllegalArgumentException(
"x,y are out of index in go function!"
);
data.visited[x][y] =
true
;
for
(
int
i =
0
; i <
4
; i ++){
int
newX = x + d[i][
0
]*
2
;
int
newY = y + d[i][
1
]*
2
;
if
(data.inArea(newX, newY) && !data.visited[newX][newY]){
setData(x + d[i][
0
], y + d[i][
1
]);
go(newX, newY);
}
}
}