- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第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是否包含此位置,如果有ch加1。然后向左最多4
您可能关注的文档
- 新Java Web程序设计教程 教学课件 范立锋 林果园 第13章 Spring与Java EE持久化数据访问.ppt
- 新Java Web应用技术与案例教程 教学课件 杨树林 胡洁萍 第三章 设计模式与分层架构.ppt
- 新Java 程序设计 教学课件 朱喜福 林建民 唐永 第01章.ppt
- 新Java 程序设计项目教程(教育部高职高专计算机教指委规划教材) 教学课件 张兴科 季昌武 项目五.ppt
- 新JavaScript程序设计基础教程 第2版 普通高等教育“十一五”国家级规划教材 教学课件 阮文江 第七章 对象编程1.ppt
- 新JavaScript程序设计基础教程 教学课件 曾海 第9章 CSS+DIV技术.ppt
- 新JavaScript脚本程序设计 教学课件 吴以欣 陈小宁 第3章 JavaScript常用内置对象.ppt
- 新Java编程与应用教程 教学课件 张莉 java_03.ppt
- 新Java编程与应用教程 教学课件 张莉 java_11.ppt
- 新Java程序设计 第二版 普通高等教育“十一五”国家级规划教材 教学课件 朱喜福2 1_ 第7章 Java的图形与用户界面.ppt
- 中级真题模拟考试附有答案.docx
- 2025年医疗健康电子产品项目安全调研评估报告.docx
- 2024-2025学年广东省佛山市南海区七年级(上)期末道德与法治试卷.pdf
- 大学生可行性报告范文(共13页).docx
- 2024-2025学年广东省佛山市南海区三年级(上)期末语文试卷.pdf
- 高压开关柜项目风险分析和评估报告.docx
- 职业素养训练与提升 郝贤云 话题课件汇总 2-1 拔河比赛与团队精神 --- 12-4 突破自我,尝试创新.pptx
- 供电工程项目前期报告.docx
- 2024-2025学年广东省佛山市南海区狮山镇三年级(上)期末语文试卷.pdf
- 2024-2025学年广东省佛山市南海区四年级(上)期中语文试卷.pdf
文档评论(0)