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

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

棋盘的结构

// 棋子点,共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}

相关阅读

中国象棋程序的设计与实现(零)--原始版源码

中国象棋程序的设计与实现(一)--项目截图

中国象棋程序的设计与实现(二)--源码

中国象棋程序的设计与实现(三)--2012本科毕业论文等重要文档资料

中国象棋程序的设计与实现(四)-- 一次“流产”的写书计划

中国象棋程序的设计与实现(五)--回答CSDN读者的一些问题

中国象棋程序的设计与实现(六)--N皇后问题的算法设计与实现(源码+注释+截图)

中国象棋程序的设计与实现(七)--心得体会和开发日志

中国象棋程序的设计与实现(八)-如何构造一个棋子(車馬炮等)

未来计划

未来3个月到1年,我将尽快把中国象棋-楚汉棋兵系列,全部写完。

觉得还不错的,帮我“顶”啊!

原文参见:http://FansUnion.cn/articles/1914

中国象棋程序的设计与实现(九)–棋子点,棋子的小窝 中国象棋程序的设计与实现(八)-如何构造一个棋子(車馬炮等)...相关推荐

  1. 中国象棋程序的设计与实现(十)--棋盘的定义和绘制 中国象棋程序的设计与实现(八)-如何构造一个棋子(車馬炮等) 中国象棋程序的设计与实现(九)–棋子点,棋子的小窝...

    本篇简要介绍棋盘类的定义.棋盘的关键属性.棋盘绘制算法的骨架. 棋盘的详细绘制算法等内容,我们将在接下来的几篇进行详细介绍. 棋盘类的定义 public abstract class ChessBoa ...

  2. 中国象棋程序的设计与实现(八)-如何构造一个棋子(車馬炮等)

    本篇详细介绍,在中国象棋程序中,如何构造一个棋子. 1.棋子类的定义. public class ChessPiece extends JLabel 棋子是一个继承自JLabel的图形界面组件,当添加 ...

  3. 4年级计算机 设计贺卡教案,四年级上册信息技术《小贝的贺卡》教学设计

    四年级上册信息技术<小贝的贺卡>教学设计 一.教学内容: 教科书第40页至43页 二.教学目标 1. 知识目标: 学会综合运用word中图片.艺术字.文本框.自选图形等制作贺卡. 2. 能 ...

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

    本篇简要介绍,在中国象棋程序中,容纳棋子的棋子点. 由于棋子位于棋盘中,为了方便讲解本篇,需要先简要介绍下棋盘的结构. 棋盘的结构 // 棋子点,共90个,横9*纵10  public ChessPo ...

  5. 设计一个中国象棋游戏,ChessPiece为抽象类,提供代表一个棋子位置的属性和方法,和isMoveLegal();设计ChessPiece的具体实现类(如车,马,帅等)

    设计一个中国象棋游戏,ChessPiece为抽象类,提供代表一个棋子位置的属性和方法,和isMoveLegal():设计ChessPiece的具体实现类(如车,马,帅等),这些类能够根据自身特点实现不 ...

  6. 计算机中国象棋书籍,[建议]中国的象棋永远不能被没有“思维”的电脑所代替(就目前的电脑象棋软件...

    [建议]中国的象棋永远不能被没有"思维"的电脑所代替(就目前的电脑象棋软件有感而发) 先自我介绍一下,本人来自上海,师从原江苏省棋队教练言穆江大师,现年28岁,无任何值得自傲的成绩 ...

  7. python·pygame小游戏--中国象棋(原码附上,免费下载)

    大家好我是小豪,今天给大家带来的是pygame小游戏-中国象棋 因为看到博客上面很多上传了的中国象棋py文件,都是收费的.所以我大胆的上传个免费的-已经把原码上传了,感兴趣的可以去下载. pygame ...

  8. 2016全国大学生计算机设计大赛,我校获2016年(第九届)中国大学生计算机设计大赛全国二等奖...

    我校严汉轩.王晓燕.钱铭铭三名同学获奖 我校<"酷门"门禁综合解决方案>获软件服务外包组全国二等奖 我和我作品的故事 近日,由教育部高等学校计算机类专业教学指导委员会. ...

  9. 3D游戏设计读书笔记九

    3D游戏设计读书笔记九 本次作业五选一,我选择制作血条预制设计,要求如下: 分别使用 IMGUI 和 UGUI 实现 使用 UGUI,血条是游戏对象的一个子元素,任何时候需要面对主摄像机 分析两种实现 ...

最新文章

  1. 推荐一个妹子,播报汽车新闻
  2. AngularJS 作用域与数据绑定机制
  3. ssas 数据源mysql_BI之SSAS完整实战教程2 -- 开发环境介绍及多维数据集数据源准备...
  4. Spark精华问答:DataFrame与RDD的主要区别在哪?
  5. 生产力提升! 自己动手自定义Visual Studio 2019的 类创建模板,制作简易版Vsix安装包
  6. 吴恩达深度学习笔记 course2 week2 优化算法
  7. php添加开机启动脚本_php-fpm开机自动启动Shell脚本
  8. Github 爆火!程序员疯抢的 Java 面试宝典(PDF 版)限时开源
  9. OpenWrt官方入门手册
  10. 利用WinDriver开发PCI设备驱动程序
  11. swagger注解说明_齐全的swagger注解介绍
  12. 超详细手把手教你App上线AppStore
  13. Java *1.11(人口估算)美国人口调查局基于以下假设进行人口估算:
  14. iOS pch文件配置
  15. 计算机前沿的英语词汇,计算机行业常用英语词汇
  16. Keil出现Error:Flash Download failed - Could not load file
  17. element导航菜单添加搜索功能
  18. 京东笔试——神奇数 【题目描述】东东在一本古籍上看到有一种神奇数,如果能够将一个数的数字分成两组,其中一组数字的和 等于另一组数字的和,我们就将这个数称为神奇数。例如 242 就是一个神奇数,我们能够
  19. p语言是python吗-python编程语言是什么?它能做什么?
  20. Arduino ULN2003驱动模块+28BYJ-48步进电机

热门文章

  1. 前百度贴吧负责人:做产品16年,我有9条心得
  2. 【593. 有效的正方形】
  3. Ps—导出:sql作业配合ps导出csv文件
  4. 如果1个小时甚至都没法入门Python,那还是换个语言吧,或者干脆换个专业
  5. HyperWorks----Simlab批处理软件通过Desktop发布后在用户端打开软件报错
  6. Excel导入数据下载模板示例
  7. Django电商项目—项目规划和环境搭建
  8. 网格化服务器管理信息平台,网格化服务管理平台
  9. OpenCV三角测量重建triangulatePoints原理解析
  10. c语言且不用 怎么表示,c语言中的“且”用什么符号表示?