中国象棋程序的设计与实现(九)–棋子点,棋子的小窝 中国象棋程序的设计与实现(八)-如何构造一个棋子(車馬炮等)...
本篇简要介绍,在中国象棋程序中,容纳棋子的棋子点。
由于棋子位于棋盘中,为了方便讲解本篇,需要先简要介绍下棋盘的结构。
棋盘的结构
// 棋子点,共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
中国象棋程序的设计与实现(九)–棋子点,棋子的小窝 中国象棋程序的设计与实现(八)-如何构造一个棋子(車馬炮等)...相关推荐
- 中国象棋程序的设计与实现(十)--棋盘的定义和绘制
中国象棋程序的设计与实现(八)-如何构造一个棋子(車馬炮等) 中国象棋程序的设计与实现(九)–棋子点,棋子的小窝...
本篇简要介绍棋盘类的定义.棋盘的关键属性.棋盘绘制算法的骨架. 棋盘的详细绘制算法等内容,我们将在接下来的几篇进行详细介绍. 棋盘类的定义 public abstract class ChessBoa ...
- 中国象棋程序的设计与实现(八)-如何构造一个棋子(車馬炮等)
本篇详细介绍,在中国象棋程序中,如何构造一个棋子. 1.棋子类的定义. public class ChessPiece extends JLabel 棋子是一个继承自JLabel的图形界面组件,当添加 ...
- 4年级计算机 设计贺卡教案,四年级上册信息技术《小贝的贺卡》教学设计
四年级上册信息技术<小贝的贺卡>教学设计 一.教学内容: 教科书第40页至43页 二.教学目标 1. 知识目标: 学会综合运用word中图片.艺术字.文本框.自选图形等制作贺卡. 2. 能 ...
- 中国象棋程序的设计与实现(九)–棋子点,棋子的小窝
本篇简要介绍,在中国象棋程序中,容纳棋子的棋子点. 由于棋子位于棋盘中,为了方便讲解本篇,需要先简要介绍下棋盘的结构. 棋盘的结构 // 棋子点,共90个,横9*纵10 public ChessPo ...
- 设计一个中国象棋游戏,ChessPiece为抽象类,提供代表一个棋子位置的属性和方法,和isMoveLegal();设计ChessPiece的具体实现类(如车,马,帅等)
设计一个中国象棋游戏,ChessPiece为抽象类,提供代表一个棋子位置的属性和方法,和isMoveLegal():设计ChessPiece的具体实现类(如车,马,帅等),这些类能够根据自身特点实现不 ...
- 计算机中国象棋书籍,[建议]中国的象棋永远不能被没有“思维”的电脑所代替(就目前的电脑象棋软件...
[建议]中国的象棋永远不能被没有"思维"的电脑所代替(就目前的电脑象棋软件有感而发) 先自我介绍一下,本人来自上海,师从原江苏省棋队教练言穆江大师,现年28岁,无任何值得自傲的成绩 ...
- python·pygame小游戏--中国象棋(原码附上,免费下载)
大家好我是小豪,今天给大家带来的是pygame小游戏-中国象棋 因为看到博客上面很多上传了的中国象棋py文件,都是收费的.所以我大胆的上传个免费的-已经把原码上传了,感兴趣的可以去下载. pygame ...
- 2016全国大学生计算机设计大赛,我校获2016年(第九届)中国大学生计算机设计大赛全国二等奖...
我校严汉轩.王晓燕.钱铭铭三名同学获奖 我校<"酷门"门禁综合解决方案>获软件服务外包组全国二等奖 我和我作品的故事 近日,由教育部高等学校计算机类专业教学指导委员会. ...
- 3D游戏设计读书笔记九
3D游戏设计读书笔记九 本次作业五选一,我选择制作血条预制设计,要求如下: 分别使用 IMGUI 和 UGUI 实现 使用 UGUI,血条是游戏对象的一个子元素,任何时候需要面对主摄像机 分析两种实现 ...
最新文章
- 推荐一个妹子,播报汽车新闻
- AngularJS 作用域与数据绑定机制
- ssas 数据源mysql_BI之SSAS完整实战教程2 -- 开发环境介绍及多维数据集数据源准备...
- Spark精华问答:DataFrame与RDD的主要区别在哪?
- 生产力提升! 自己动手自定义Visual Studio 2019的 类创建模板,制作简易版Vsix安装包
- 吴恩达深度学习笔记 course2 week2 优化算法
- php添加开机启动脚本_php-fpm开机自动启动Shell脚本
- Github 爆火!程序员疯抢的 Java 面试宝典(PDF 版)限时开源
- OpenWrt官方入门手册
- 利用WinDriver开发PCI设备驱动程序
- swagger注解说明_齐全的swagger注解介绍
- 超详细手把手教你App上线AppStore
- Java *1.11(人口估算)美国人口调查局基于以下假设进行人口估算:
- iOS pch文件配置
- 计算机前沿的英语词汇,计算机行业常用英语词汇
- Keil出现Error:Flash Download failed - Could not load file
- element导航菜单添加搜索功能
- 京东笔试——神奇数 【题目描述】东东在一本古籍上看到有一种神奇数,如果能够将一个数的数字分成两组,其中一组数字的和 等于另一组数字的和,我们就将这个数称为神奇数。例如 242 就是一个神奇数,我们能够
- p语言是python吗-python编程语言是什么?它能做什么?
- Arduino ULN2003驱动模块+28BYJ-48步进电机
热门文章
- 前百度贴吧负责人:做产品16年,我有9条心得
- 【593. 有效的正方形】
- Ps—导出:sql作业配合ps导出csv文件
- 如果1个小时甚至都没法入门Python,那还是换个语言吧,或者干脆换个专业
- HyperWorks----Simlab批处理软件通过Desktop发布后在用户端打开软件报错
- Excel导入数据下载模板示例
- Django电商项目—项目规划和环境搭建
- 网格化服务器管理信息平台,网格化服务管理平台
- OpenCV三角测量重建triangulatePoints原理解析
- c语言且不用 怎么表示,c语言中的“且”用什么符号表示?