Java五子棋单机版.docVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、实验目的 (1) 使用 Java 编写五子棋程序 (2) 掌握编写过程的一些类和类成员的使用,并且了解五子棋制作过 程的一些步骤和了解一些算法。 二、实验环境 在电子楼 2 楼,装有 My Eclipse 的计算机上进行 三、实验内容 编写一个五子棋程序。 程序主要实现以下功能: 1.实现五子棋界面,要求人性化界面简洁美观; 2.实现黑白色轮流下棋功能,能提示下棋方; 3.实现连成五子自动判断功能; 4.实现时间设置功能,认输功能; 核心代码如下: 1.我的第一步是设计界面。在这个过程的要使用到以下的步骤: 我的第一步是设计界面。在这个过程的要使用到以下的步骤: 我的第一步是设计界面 1.使用 MyEclipse 创建一个 Project 关于这个工程,加入两个类,分别是 ChessFrame 和 Chess,而 ChessFrame 是这个工程中最重要的一个部分。创建 过程中要继承 JFrame 类,并且要继承 Runnable 和 MouseListener 这两个接 口,分别是用来监听鼠标的移动和时间的变化。 2.在给这个 JFrame 设置大小和颜色等一些东西。 这里最主要的是使用了两个函数,是以前没见过的: 1.这个是用来设置默认的窗口关闭事件的 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 2.这两个是用来获得屏幕的大小的 Toolkit.getDefaultToolkit().getScreenSize().height; Toolkit.getDefaultToolkit().getScreenSize().width; 3.把本地的背景图片加到这个窗口中,作为这个窗口的背景图: 使用的到的类有BufferedImage和 ImageIO这两个类, 这两个类是专门用来处 理这种功能的。主要的代码如下: BufferedImage bg = null; bg = ImageIO.read(new File(e:/background.jpg)); g.drawImage(bg,0,0,this); 这样这个图片就加到了这个窗口的背景去了。 这里有一个改进就是双缓冲技术,可以防止闪屏。这个技术就是在界面和内存都 有一幅图,我们的改动不是直接画界面,而是内存中先画好然后把内存中直接显 示出来,那样就没有了一前一后的,那就没有了闪屏的事情发生了。 4.就是画棋盘和写一些游戏信息: 这步比较简单,也没什么可以说的,用到的一些画线的函数,和写String的一些 函数。 以上做完以后就可以出现以下的界面: 1.我的第二步就是增加对 mouse 的点击和移动的处理,这样以后就可以用来 我的第二步就是增加对 的点击和移动的处理, 下棋。在这个过程的要使用到以下的步骤: 下棋。在这个过程的要使用到以下的步骤: 1.增加对 mouse 的监视,然后重写它的一些函数: 1.我们在 ChessFrame 的构造函数中加入了 addMouseListener()函数, 然后重写关于这个的四 个函数,我们这这里不重写所有的函数,就改写一个 MousePress 函数就可以了。改写的代 码如下: public void mousePress(MouseEvent arg0) { this.x = arg0.getX(); this.y = arg0.getY(); if (this.canplay) this.repaint(); } 现在要处理的就是加上棋子了,我在这个做了一下小改动可以更加准确的定位下 棋的位置: if (x = 10 x = 374 y = 72 y = 450) { int sx1 = (this.x - 10) / 20; int sy2 = (this.y - 72) / 20; int yx1 = (this.x - 10) % 20; int yy2 = (this.y - 72) % 20; if (yx1 = 10) { sx1++; } if (yy2 = 10) { sy2++; } 就是这个,我们通过监控鼠标的就可以得到点击的X,Y坐标,我在这里通过对它 求余,假如余数大于10(就是一个格子的一半)那就给+1,不然不变。后面的画 棋子是很简单的一个过程,使用的是现成的函数(drawoval) 2.这部要做的就是记录棋子和五子连的判断: 1.我们通过一个数组int给保存棋子,如果是0就是没子,1表示是黑子,2表示白子。在 每次重绘的时候遍历这个数组显示,这样就可以保存棋子了。 2.判断五子连起来然后获胜的算法: 这个算

文档评论(0)

精华文档888 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档