- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java五子棋课设计报告
Java课程设计报告
题目:用java编写五子棋游戏
姓名:曾磊
学号:20141387036
专业:物联网工程
要求:
1.用java编写五子棋的游戏
2.该程序拥有简洁美观的图形化界面,且界面主要由棋盘、标题和游戏操作的按钮三部分组成。另外,该游戏界面的大小是不可变的,程序会自动获取电脑屏幕的大小信息,并且计算出合适的位置居中显示。因为考虑到棋盘和背景图片的显示问题,为防止出现排列错乱,故采用这样的设计方式。
3.标题位于界面的最上方;棋盘为19*19的围棋棋盘,位于左下方;按钮包括:“开始游戏” “退出游戏” “游戏说明”,共3个,位于棋盘的右侧
4. 在单击鼠标时,在相应的位置显示棋子 ,还能够显示轮到哪一方下棋(规定黑子先下)
5. 可以保存棋局,即保存之前下过的棋子
6.能够判断游戏胜负,并且弹出窗口提示。一局结束后可以通过“开始游戏”按钮清空棋盘界面,进行下一局。
设计思想:本程序主要用到以下3种技术:
⑴ Swing编程
⑵ ImageIO类的使用
⑶ Graphics图片的绘制
对于这样一个五子棋游戏程序。1.首先我们要用java.Swing和java.awt工具包来设计游戏的用户界面并且绘制图像图形,如制作棋盘。2.此外还要用到ImageIO类来导入和显示图片用作游戏界面的背景,背景图片可以自己设计。
3.主体界面制作好了以后,我们就可以添加事件监听,用与监听鼠标相关的类—— MouseListener来在指定区域和位置内利用鼠标点击产生棋子进行游戏。4. 接下来就可以开始设计判定胜负的算法了。5.然后就是按钮功能的实现。6.最后就是调试和测验,看程序有没有什么bug。
具体会用到的类和方法会在下面的主程序中一一给予介绍
编程过程
导入java.awt、java.io和javax.swing工具包,它们包含用于创建用户界面、绘制图形图像、图像导入,鼠标监听的所有分类。
import java.awt.Color; //color类用于对游戏界面进行配色
import java.awt.Font; //font类提供与字体相关的类和接口。
import java.awt.Graphics; //Graphics类提供执行实际的绘制、着色及文本输出的操作功能的基类
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener; //与监听鼠标相关的类
import java.awt.image.BufferedImage; //导入图片的处理类
import java.io.File; // 文件和目录路径名的抽象表示形式。
import java.io.IOException; //异常类
import javax.imageio.ImageIO; //显示图片的类
import javax.swing.JFrame; //创建窗体,并且设置其大小,位置等属性
import javax.swing.JOptionPane; //与对话框相关的类
public class FiveChessFrame extends JFrame implements MouseListener, Runnable {
// 获取屏幕的宽度和高度,用以计算出合适的位置将游戏界面居中显示
int width = Toolkit.getDefaultToolkit().getScreenSize().width;
int height = Toolkit.getDefaultToolkit().getScreenSize().height;
// 先将背景图片定义为空
BufferedImage bgImage = null;
//这里定义的x,y用来保存棋子的坐标
int x = 0;
int y = 0;
定义一个19*19的二维数组来表示棋盘,其中数据内容 0: 表示这个点并没有棋子, 1: 表示这个点是黑子, 2:表示这个点是白子
int[][] allChess = new int[19][19];
// 标识当前应该黑棋还是白棋下下一步
boolean isBlack = true;
// 标识当前游戏是否可以继续
boolean canPlay = true;
// 保存显示的提示信息,这个信息是用来在界面的棋盘上方显示的
您可能关注的文档
- 2018高考历史备考优生百日闯关专02 古代中华的经济文明.doc
- 2018高考历史备考优生百日闯关专题10 世界本主义经济政策的调整.doc
- 2018高考历史备考优生百日闯关专题0 古代中华的思想文化.doc
- 2018高考历史备考优生百日闯关专题11 世界经的全球化趋势.doc
- 2018高考历史备考优生百日闯关专题18 近现代中国社会活的变迁.doc
- 2018高考历史备考优生百日闯关专题专题13 近代以中国的思想解放潮流.doc
- 2018高考历史备考优生百闯关专题09 当今世界政治格局的多极化趋势.doc
- 2018高考历史备考优生百日闯关题06 近代西方民主思想的兴起与发展.doc
- 2018高考历史备考优生百闯关专题专题12 近代中国经济结构的变动.doc
- 2018高考历史备考优生百闯关专题17 现代中国的对外关系.doc
- 透视大学生发展风险:类型剖析、影响探究与应对策略.docx
- 信用保险赋能中小企业供应链金融融资的模式与路径探索.docx
- 基于智能模型的输变电工程造价分析与精准管控研究.docx
- 我国商业银行中间业务风险控制:问题与对策.docx
- 互联网经济赋能:辽宁省装备制造业产业升级的路径与策略研究.docx
- 媒体报道与企业投资行为:双向驱动与交互影响的深度剖析.docx
- 基于体裁的商务英语写作教学:理论、实践与创新探索.docx
- 宋代吉州窑茶盏:呈色机理与工艺基础的深度解析.docx
- 信诚人寿深圳分公司银保业务:现状剖析、问题诊断与营销策略重构.docx
- 基于介电特性的芒果无损检测技术:原理、应用与展望.docx
文档评论(0)