- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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.判断五子连起来然后获胜的算法: 这个算
您可能关注的文档
- java 第1-5章习题课.doc
- Java 课程体系结构.doc
- JAVA 完美编程复习题+答案 第一章.doc
- Java 文件操作基础.doc
- JAVA 五子棋开题报告.doc
- JAVA 习题题目及答案.doc
- JAVA(第6套).doc
- Java_程序设计习题集(答案).doc
- Javab层框架.doc
- JAVAEE实验报告2(华北电力大学科技学院).doc
- 2025年一级建造师考试《水利水电工程管理与实务》冲刺必刷卷.docx
- 2025年一级建造师考试《水利水电工程管理与实务》逆袭破题卷1.docx
- 2025年一级建造师考试《市政工程管理与实务》冲刺必刷卷 .docx
- 2025年一级造价工程师考试《建设工程计价》预习卷.docx
- 2025年一级造价工程师考试《建设工程造价管理》预习卷.docx
- 2025年一级造价工程师考试《建设工程造价案例分析(安装专业)》预习卷.docx
- 2025年一级造价工程师考试《建设工程造价案例分析(土建专业)》预习卷.docx
- 2025年中级会计考试《会计实务》冲刺提分卷.docx
- 2025年中级会计考试《财务管理》冲刺提分卷.docx
- 2025年中级会计考试《财务管理》全真模拟卷.docx
最近下载
- 中国共产主义青年团团章.doc VIP
- 照明工程数量表计算.xlsx VIP
- 2024汽车维修工时定额.docx VIP
- 内网及邮箱用户名列表.doc VIP
- 新解读《GB_T 18295 - 2001油气储层砂岩样品扫描电子显微镜分析方法》最新解读.docx VIP
- DB11T 945.1-2023建设工程施工现场安全防护、场容卫生及消防保卫标准 第1部分:通则.pdf VIP
- JGT 160-2017 混凝土用机械锚栓.docx VIP
- 建筑施工安全生产治本攻坚三年行动方案(2024-2026年).docx VIP
- 2024年内蒙古巴林左旗林业和草原局国有公益林护林员招聘真题.docx VIP
- 鲁教版(五四学制)六年级上册地理期末复习重点知识点提纲(实用!).docx VIP
文档评论(0)