JAVA 抽象类编程 急 急。。自己写了点写不下去了

来源:百度知道 编辑:UC知道 时间:2024/05/25 14:58:35
设计一个象棋游戏。ChessPiece为抽象类,提供代表一个棋子位置的属性和方法,和isMoveLegal方法。还有继承ChessPiece的具体类(如车,马,帅等),这些类要能根据各自的特点具体实现isMoveLegal。

驱动程序允许用户确定一枚棋子,它的当前位置,目的位置。根据要下的棋反馈“合法”或“非法”。
不要整个的象棋游戏代码,我看不懂。。就按简单要求就可以了

父类:

public abstract class ChessPiece {

private int currX; //当前横坐标
private int currY; //当前纵坐标

public ChessPiece(int x, int y) {
this.currX = x;
this.currY = y;
}

/**
* 只通过目的坐标验证合法性,实际上是不够的,还需考虑障碍等等
* @param x
* @param y
* @return
*/
public abstract void isMoveLegal(int x, int y);

public int getCurrX() {
return currX;
}
public void setCurrX(int currX) {
this.currX = currX;
}
public int getCurrY() {
return currY;
}
public void setCurrY(int currY) {
this.currY = currY;
}

}

子类【马】:

public class Horse extends ChessPiece {

public Horse(int x, int y) {
super(x, y);
}

/**
* 实现父类验证方法,判断是否走“日”字~~
*/
@Override
public void isMoveLegal(int x, int y) {
int m = Math.abs(this.getCurrX()-x);
int n