首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

中国象棋程序的设计与实现(9)–棋子点,棋子的小窝

2013-10-23 
中国象棋程序的设计与实现(九)–棋子点,棋子的小窝本篇简要介绍,在中国象棋程序中,容纳棋子的棋子点。由于棋

中国象棋程序的设计与实现(九)–棋子点,棋子的小窝

本篇简要介绍,在中国象棋程序中,容纳棋子的棋子点。

由于棋子位于棋盘中,为了方便讲解本篇,需要先简要介绍下棋盘的结构。

棋盘的结构

// 棋子点,共90个,横9*纵10
 public ChessPoint chessPoints[][];

棋盘由90个点组成。(后续文章,将详细介绍棋盘)

棋子点

每一个正常的棋子都位于棋盘上的一个点,棋子点就是一个棋子的“小窝”。

这个点有坐标(x,y),并且存放着棋子的引用。

public class ChessPoint{    /**     * 棋子点的物理坐标-x轴     */    private int x;    /**     * 棋子点的物理坐标-y轴     */    private int y;    /**     *  棋子的引用     */     private ChessPiece piece;     /**     * 这个点是否存在棋子     * @return 存在,返回<code>true</code>;否则,返回<code>fasle</code>     */    public boolean hasPiece() {        return piece != null;    }    public void setHasPiece(boolean hasPiece) {        // 很重要        if (!hasPiece) {            piece = null;        }    }    public Point getPoint() {        return new Point(x, y);    }}


初始化

 // 初始化棋子点        chessPoints = new ChessPoint[X + 1][Y + 1];        for (int i = 1; i <= X; i++) {            for (int j = 1; j <= Y; j++) {                chessPoints[i][j] = new ChessPoint(i * UNIT_WIDTH, j                        * UNIT_HEIGHT);            }        }


相关常量

   // 棋盘的水平方向可容纳棋子的点的个数
    public static final int X = 9;

    // 棋盘的垂直方向可容纳棋子的点的个数
    public static final int Y = 10;

    // 棋盘单元格的宽度
    public static int UNIT_WIDTH = ChessPiece.UNIT_WIDTH;
    // 棋盘单元格的高度
    public static int UNIT_HEIGHT = ChessPiece.UNIT_HEIGHT;

更多细节,我们将在讲解棋盘等相关章节的时候,进一步介绍ChessPoint。

特别说明

棋子点的坐标和棋子的坐标是不同的。

棋子在棋盘中的坐标,Point类型。 坐标范围 {(x,y)| 1<=x<=9,1<=y<=10}

棋子点在棋盘中的坐标,坐标范围 {(x,y)| 1*UNIT_WIDTH<=x<=9*UNIT_WIDTH,1*UNIT_HEIGHT<=y<=10*UNIT_HEIGHT}


相关阅读

http://FansUnion.cn/articles/1914

热点排行