- 5
- 0
- 约2.38千字
- 约 13页
- 2019-07-17 发布于辽宁
- 举报
第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程序设计简明教程第1章Java语言概述.ppt
- JAVA程序设计简明教程第2章 Java语法基础.ppt
- JAVA程序设计简明教程第3章 Java语言程序控制语句.ppt
- JAVA程序设计简明教程第4章 Java面向对象编程基础.ppt
- JAVA程序设计简明教程第5章 Java面向对象编程进阶.ppt
- JAVA程序设计简明教程第6章 Java的类库.ppt
- JAVA程序设计简明教程第7章 Java Swing.ppt
- JAVA程序设计简明教程第8章 Java Applet编程.ppt
- JAVA程序设计简明教程第9章 Java高级编程.ppt
- JAVA程序设计教程第1章 Java语言概述.ppt
最近下载
- 新职业英语职业综合英语2(第三版)VR版Unit+1+PPT课件.pptx VIP
- 2026年部编版新教材语文小学二年级下册全册教案(含教学计划).pdf
- 计算机应用基础教程(Windows10+Office2016)PPT全套完整教学课件.pptx VIP
- 烹饪原理课件.pptx VIP
- 眩晕晕厥意识障碍(共48张PPT).pptx VIP
- 军工科研院所基于组织变革的科技创新体系构建与实施.pptx VIP
- 在学习贯彻党的二十届四中全会精神研讨会上的讲话.doc VIP
- 电缆价格详细计算表.xls VIP
- 生产制造过程管理汇报.pptx VIP
- 部编编人教版四年级下册小学道德与法治全册精品课件PPT.pptx
原创力文档

文档评论(0)