import java.io.BufferedReader;
import java.io.InputStreamReader;
public class RabbitRun {
private int indexX;
private int indexY;
public RabbitRun(int x,int y){
this.indexX = x;
this.indexY = y;
}
public int getIndexX() {
return indexX;
}
public void setIndexX(int indexX) {
this.indexX = indexX;
}
public int getIndexY() {
return indexY;
}
public void setIndexY(int indexY) {
this.indexY = indexY;
}
public String toString(){
return "rabbit in :("+getIndexX()+","+getIndexY()+")";
}
private void getIndexOfRabbit(Long num,boolean isRun){
int step = 0;
if(num%2 == 0)//偶数移动1步
step = 1;
else //奇数移动3步
step = 3;
if(!isRun){
System.out.println(this.toString());
return;
}
//共有四个关键坐标(0,0、0,10、10,10、10,0)
if(indexX == 0 && indexY < 10){
int y = getIndexY();
if((10-y) >= step){
indexY += step;
System.out.println(new RabbitRun(indexX,indexY).toString());
}else{
indexX = step - (10-y);
indexY = 10;
new RabbitRun(indexX,indexY);
getIndexOfRabbit(num,false);
}
}else if(indexX < 10 && indexY == 10){
int x = getIndexX();
if((10-x)>=step){
indexX += step;
System.out.println(new RabbitRun(indexX,indexY).toString());
}else{
indexY = x - step;//简化10-(step - (10-x))得到
indexX = 10;
new RabbitRun(indexX,indexY);
getIndexOfRabbit(num,false);
}
}else if(indexX == 10 && indexY > 0){
int y = getIndexY();
if(y >= step){
indexY = y - step;
System.out.println(new RabbitRun(indexX,indexY).toString());
}else{
indexX = 10 - y;
indexY = 0;
new RabbitRun(indexX,indexY);
getIndexOfRabbit(num,false);
}
}else if(indexX > 0 && indexY == 0){
int x = getIndexX();
if(x >= step){
indexX = x - step;
System.out.println(new RabbitRun(indexX,indexY).toString());
}else{
indexY = step - x;
indexX = 0;
new RabbitRun(indexX,indexY);
getIndexOfRabbit(num,false);
}
}
}
public void runRabbit(){
boolean isRun = true;
while(isRun){
String step;
System.out.println("请输入整数值:");
try{
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
step = br.readLine();
if("quit".equals(step)){
isRun = false;
System.out.println("游戏结束!");
}else{
try{
long num = Long.parseLong(step);
getIndexOfRabbit(num,true);
}catch(NumberFormatException ne){
System.out.println("输入值不符合要求,请重新输入!");
}
}
}catch(Exception ie){
isRun = false;
}
}
}
public static void main(String[] args){
RabbitRun rab = new RabbitRun(2,0);
rab.runRabbit();
}
}