首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >棋盘的ASCII表示

棋盘的ASCII表示
EN

Stack Overflow用户
提问于 2014-07-12 20:46:29
回答 1查看 3.8K关注 0票数 1

我正在用Java编写一个国际象棋引擎,我想打印带有ASCII字符的棋盘(例如:#8代表一个空的方块,K代表一个国王,Q代表一个王后等等)。代表应该区分黑白的部分。

我正在寻找的方法,这将有一个输入列表(或映射或数组)的片断,并将输出一个字符串代表的板。

我已经有了一个Board对象,其中包含一个棋子列表。Piece是一个抽象类,有一个位置(x,y)和一个颜色(黑色或白色)。然后,King、Queen、Knight是实现块类的类。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2014-07-12 20:52:04

我认为你可以使用Abstract- Class (或接口)来实现它:

代码语言:javascript
复制
public abstract class ChessObject { 
private ChessColor color;

public abstract String getCharRepresentation();

public ChessObject(ChessColor color){
    this.color = color;
}

public ChessColor getColor() {
    return color;
}

public void setColor(ChessColor color) {
    this.color = color;
}

}

实施:

代码语言:javascript
复制
public class King extends ChessObject{

public King(ChessColor color){
    super(color);
}

@Override
public String getCharRepresentation() {
    return "K";
}

}

枚举:

代码语言:javascript
复制
public enum ChessColor {
WHITE, BLACK;
}

Main-示例:

代码语言:javascript
复制
public static void main(String[] args) {
    List<ChessObject> objects = new ArrayList<ChessObject>();
    objects.add(new King());
    for(ChessObject obj : objects){
        System.out.println(obj.getCharRepresentation());
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24713064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档