- 2
- 0
- 约2.29千字
- 约 14页
- 2019-07-17 发布于辽宁
- 举报
Java游戏编程原理与实践教程 第14章 单机版五子棋游戏 本章五子棋游戏程序为一简易五子棋,棋盘为15*15,白子先落。可以点击鼠标右键悔棋,最多悔3步。在每次下棋子前,先判断该处有无棋子,有则不能落子,超出边界不能落子。任何一方有达到横向、竖向、斜向、反斜向连到5个棋子则胜利。本章五子棋游戏运行界面如图14-1所示。 五子棋游戏运行界面 14.2 五子棋设计思想 在下棋过程中,为了保存下过的棋子的位置使用了Vector向量v,v存储双方的每步走棋信息,每步走棋信息形式为(X坐标-Y坐标)存储。 同时黑白方各自也使用了Vector向量white,black保存各自的走棋信息,便于统计是否五子。 Vector v=new Vector(); //所有的每步走棋信息 Vector white=new Vector(); //白方走棋信息 Vector black=new Vector(); //黑方走棋信息 14.2 五子棋设计思想 整个游戏运行时,在鼠标单击事件中判断单击位置是否合法,即不能在已有棋的位置点击,也不能超出游戏棋盘边界,如果合法则将此位置信息加入到Vector向量v及各自的走棋信息向量中,同时调用this.repaint()刷新屏幕并判断游戏的输赢。 14.3 关键技术 14.3.1 Vector向量容器 向量(Vector)是java.util包提供的一个用来实现不同类型元素共存的变长数组的工具类。Vector不但可以保存顺序的一列数据,而且还封装了许多有用的方法来操作和处理这些数据,比数组功能强大。 适合用Vector类的情况: (1)需要处理的对象数目不定,序列中的元素都是对象,或可以表示为对象; (2)需要将不同类的对象组合成一个数据系列; (3)需要做频繁的对象序列中元素的插入和删除; (4)经常需要定位序列中的对象或其他查找操作; (5)在不同类之间传递大量的数据。 Vector类的有关方法 1.创建向量类的对象 Vector类有三个构造函数,最复杂的是: Public Vector(int initCapacity,int capacityIncrement); 2.向量中添加元素 方法1:用addElement()方法将新元素添加在向量序列的尾部。 格式:addElement(Object obj); 方法2:用insertElement()方法将新元素插入在向量序列的指定位置处。 格式:insertElement(Object obj, int index); Vector类的有关方法 3. 修改或删除向量序列中的元素 (1) void setElementAt(Object obj, int index) 将向量序列index位置处的对象元素设置成为obj,如果此位置原来有元素则被覆盖。 (2) boolean removeElement (Object obj) 删除向量序列中第一个与指定的obj对象相同的元素,同时将后面的元素前移。 (3) void removeElementAt(int index) 删除index指定位置处的元素,同时将后面的元素前移。 (4) void removeAllElements() 清除向量序列中的所有元素。 Vector类的有关方法 4.查找向量序列中的元素 (1) Object elementAt(int index) 返回指定位置处的元素。通常需要进行强制类型转换。 (2) boolean contains (Object obj) 检查向量序列中是否包含与指定的obj对象相同的元素,是则返回true否则false。 14.3.2 判断输赢的算法 本游戏关键技术是判断输赢的算法。对于算法具体实现大致分为以下几个部分: 判断X=Y轴上是否形成五子连珠 判断X=-Y轴上是否形成五子连珠 判断X轴上是否形成五子连珠 判断Y轴上是否形成五子连珠 以上四种情况只要任何一种成立,那么就可以判断输赢。 程序中victory(int x,int y,Vector contain) 方法判断输赢victory(int x,int y, Vector contain)中前两个参数为走棋位置,第三个参数为保存该方所有走棋信息Vector向量。分别计算以(int x,int y)为中心的四个方向上棋子数量,由于contain保存的仅仅是自己的棋子,所以在某方那个向上判断时只需判断contain是否包含此位置,如果包含此位置的项,即说明此处有己方棋子。 14.3.2 判断输赢的算法 例如:以(int x,int y)为中心计算水平方向棋子数量时,首先向右最多4个位置,判断contain是否包含此位置
您可能关注的文档
- JAVA程序设计教程第10章 网络程序设计.ppt
- JAVA程序设计教程第11章 异常处理.ppt
- Java程序设计实用教程(第2版)_第1章_初识Java.ppt
- Java程序设计实用教程(第2版)第2章_初识对象和简单数据类型.ppt
- Java程序设计实用教程(第2版)第3章_运算符、表达式和语句.ppt
- Java程序设计实用教程(第2版)第4章_类 与 对 象.ppt
- Java程序设计实用教程(第2版)第5章_子类与继承.ppt
- Java程序设计实用教程(第2版)第6章_接口与多态.ppt
- Java程序设计实用教程(第2版)第7章_数组与枚举 .ppt
- Java程序设计实用教程(第2版)第8章_内部类与异常类.ppt
最近下载
- MS9系列稀浆封层车介绍.pdf VIP
- DELTA台达-HMI人机界面 DOP-B07SS411安装手册.pdf
- 传感器原理及应用-姜香菊-第一章 传感器的基础理论.ppt VIP
- (PPT,3版)跨国公司经营与管理第十二章 国际社会对跨国公司的管理与规制.pptx VIP
- [SSCI-AHCI-chen.ppt VIP
- 2026年江西工业贸易职业技术学院单招职业适应性测试题库有答案解析.docx VIP
- 档案利用效果登记簿档案利用效果登记表.docx VIP
- 昆虫m6A甲基化转移酶METTL3基因片段及其dsRNA和应用.pdf VIP
- 传感器原理及应用姜香菊电子课件第二章节应变式传感器.ppt VIP
- 临沂网络餐饮安全培训课件.pptx VIP
原创力文档

文档评论(0)