Java20第十七章-五子棋.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java20第十七章-五子棋.ppt

安卓越科技(北京)有限公司 * 第十七章 项目实战1-单机版 五子棋游戏 回顾与作业点评 注解 内置的基本注解类型 自定义注解类型 对注解进行注解 使用反射获取注解信息 本章任务 掌握Swing的应用 掌握算法的应用 掌握游戏悔棋功能实现 掌握监听器的应用 掌握JAVA程序打包 知识要点 Swing的应用 算法的应用 游戏悔棋功能实现 监听器的应用 JAVA程序打包 17.1功能描述 双人对下的五子棋游戏,根据最后落子判读胜负。 17.2 总体设计 1. ChessBoard.java 绘制棋盘、棋子,判读胜负。 2.Point.java 定义棋子的颜色,获取棋子的索引值 3. StartChessJFrame.java 主窗体界面,包括工具面板,重新开始,悔棋,退出,及菜单项。 17.3 代码实现 *五子棋主窗体设计 *五子棋的棋子设计 *对弈算法设计 编写思路: (1). 首先编写一个类StartCheesJFrame,主要用来显示主窗体界面,包括工具 条面板,重新开始,悔棋,退出按钮,菜单栏, 系统菜单,重新开始,悔棋,和退出菜单项。设置设置界面关闭事件。并编写一个 内部类MyItemListener来监听按钮和菜单项单击事件。 (2). 编写ChessBoard extends JPanel,通过定义构造函数,来设置背景颜色为 橘黄色。然后在主框架类中创建ChessBoard对象 ,并添加到主框架中。 (3). 在ChessBoard中覆盖paintComponent方法来进行绘制。绘制16*16网格的 棋盘, 绘制前先定义边距、行数、列数、网格 宽度等常量。 (4). 编写Point类,包括棋子的x,y索引, 颜色。 定义构造函数和相应的get方法。 (5). 在ChessBoard中创建Point[], 然后在paintComponent方法中绘制棋子数组 (注意将索引转换成坐标)。 (6). 为ChessBoard实现监听器MouseListener, 覆盖相应抽象方法。在构造方法 中增加监听器(addMouseListener...)。 (7). 编写mousePressed方法的内容,预先定义isBlack表示下的是黑棋还是白棋, PointCount表示当前棋子的个数 (8). 在mousePressed中获得下的坐标,转换成索引, 再创建Point对象,添加到PointList中。再重新绘制。 (9). 添加相应的判断: 不能画到棋盘外, 下过的地方不能再下(需要辅助方法findPoint...) (10).再添加胜利的判断isWin, 添加标记变量gameOver. 在mousePressed方法的最前面调用加入gameOver的判断,在mousePressed方法的最后调用isWin,返回true则给出消息提示,gameOver设置为true。 (11). isWin方法具体的编写。在当前下棋的横向,纵向,两个斜向上分别判断是否有连续的同色五子。 1.五子棋主窗体设计 import javax.swing.*; import java.awt.event.*; import java.awt.*; public class StartChessJFrame extends JFrame { private ChessBoard chessBoard;//对战面板 private JPanel toolbar;//工具条面板 private JButton startButton, backButton, exitButton; //重新开始按钮,悔棋按钮,和退出按钮 private JMenuBar menuBar;//菜单栏 private JMenu sysMenu;//系统菜单 private JMenuItem startMenuItem, exitMenuItem, backMenuItem; //重新开始,退出,和悔棋菜单项 public StartChessJFrame() { setTitle(单机版五子棋);//设置标题 chessBoard = new ChessBoard();//初始化面板对象 // 创建和添加菜单 menuBar = new JMenuBar();//初始化菜单栏 sysMenu = new JMenu(系统);//初始化菜单 startMenuItem = new JMenuItem(重新开始); exitMenuItem = new JMenuItem(退出); backMenuItem = new JM

您可能关注的文档

文档评论(0)

zhoujiahao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档