package unit2;
/**
* Created by 95 on 2016/4/22.
*/
public abstract class Unit {
private String name;
private FPoint position;
public Unit() {
}
public Unit(String name, FPoint position) {
this.name = name;
this.position = position;
}
public Unit(FPoint position) {
this.position = position;
}
public int getX() {
return position.getX();
}
public void setX(int x) {
position.setX(x);
}
public void setY(int y) {
position.setY(y);
}
public int getY() {
return position.getY();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public abstract boolean move() ;
protected void changePosition(int rollNumber) {
for(int i=0;i<rollNumber;i++){
if(arrayExist(bottom)){
setX(getX()+1);
}else if(exist(left)){
setY(getY()-1);
}else if(exist(right)){
setY(getY()+1);
}else{
System.out.println("判断失败,超出了想象");
}
if(getX()==24&&getY()==29){
return;
}
}
}
private boolean arrayExist(FPoint[] bottom) {
for(int i=0;i<bottom.length;i++){
if(bottom[i].getX() == getX() && bottom[i].getY()==getY()){
return true;
}
}
return false;
}
static int [] right = new int[]{0,8,16,24};
static FPoint [] bottom = new FPoint[]{new FPoint(0,29),new FPoint(1,29),new FPoint(2,29),new FPoint(3,29),
new FPoint(4,0),new FPoint(5,0),new FPoint(6,0),new FPoint(7,0),
new FPoint(8,29),new FPoint(9,29),new FPoint(10,29),new FPoint(11,29),
new FPoint(12,0),new FPoint(13,0),new FPoint(14,0),new FPoint(15,0),
new FPoint(16,29),new FPoint(17,29),new FPoint(18,29),new FPoint(19,29),
new FPoint(20,0),new FPoint(21,0),new FPoint(22,0),new FPoint(23,0),};
static int [] left = new int[]{4,12,20};
private boolean exist(int [] array){
for(int i=0;i<array.length;i++){
if(array[i]==getX()){
return true;
}
}
return false;
}
}
|
|