黑马程序员技术交流社区

标题: 飞行棋(面向对象) [打印本页]

作者: cmz456123    时间: 2016-4-26 22:35
标题: 飞行棋(面向对象)
              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;
    }

}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2