




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实训一扫雷游戏1.1系统设计需求分析随机布雷实现扫雷功能标记小方块选择游戏的难度显示剩余雷数显示已使用时间最好成绩记录重新开始加快扫雷进程加入声音1.1系统设计类的设计MineFrame
MinePanelBlockBlockTypeBlockStateRecordGradeTimer对话框类监听器类1.2创建主窗口创建Java项目Saolei创建子文件夹image,将需要的图标复制到该文件夹创建MineFrame类publicclassMineFrameextendsJFrame{JMenuBarmenuBar;JMenumenu;JMenuItem[]menuItems;String[]menuItemNames={"初级","中级","高级","自定义","排行榜","退出"};JTextFieldminesRemained; //显示剩余雷数的文本框JButtonreStart; //重新开始按钮JTextFieldtimeUsed; //显示游戏使用时间的文本框Iconface; //按钮上的图标JPanelupPanel;//计时区域创建主程序类Saolei1.3
MinePanel类和Block类
BlockType类publicclassBlockType{ staticfinalintZERO=0;//周围的雷数 staticfinalintONE=1; staticfinalintTWO=2; staticfinalintTHREE=3; staticfinalintFOUR=4; staticfinalintFIVE=5; staticfinalintSIX=6; staticfinalintSEVEN=7; staticfinalintEIHHT=8; staticfinalintMINE=9;//是雷}1.3
MinePanel类和Block类
BlockState类publicclassBlockState{ staticfinalintORIGINAL=0;//初始状态 staticfinalintOPEN=1;//翻开状态 staticfinalintMINE_FLAG=2;//标记为雷 staticfinalintQUESTION_FLAG=3;//标记为问号 staticfinalintEXPLODED=4;//爆炸状态}
Grade类publicclassGrade{ publicstaticfinalintLOWER=1;//初级 publicstaticfinalintMEDIAL=2;//中级 publicstaticfinalintHIGHER=3;//高级 publicstaticfinalintSELF_DEFINE=4;//自定义}1.3
MinePanel类和Block类
Block类属性 privateMinePanelminePanel; privateintrow;//在雷区的行号 privateintcol;//在雷区的列号 publicfinalintWIDTH=19;//方块的宽度 publicfinalintHEIGHT=19;//方块的高度 privateinttype;//0,1,2,3,4,5,6,7,8,(9雷) privateintstate;//0原始状态,1翻开,2标记为雷,3标记为问号 publicstaticToolkittk; publicstaticfinalImage[]numberImage;//0~8 publicstaticfinalImage[]flagImage;//0标记为雷、1标记为问号 publicstaticfinalImage[]bombImage;//0未爆炸、1已爆炸
publicstaticfinalImagebackImage;//未翻开时的背面
1.3
MinePanel类和Block类
Block类方法publicbooleanopen()//翻开,遇雷失败publicvoiddraw(Graphicsg)//画出不同类型、不同状态的方块构造方法、get、set方法
1.3
MinePanel类和Block类
MinePanel类属性 publicfinalintGRID_WIDTH=20;//方格的宽度 publicfinalintGRID_HEIGHT=20;//方格的高度 privateMineFramemf; privateintcols;//雷区的列数 privateintrows;//雷区的行数 privateintmines;//雷区的雷数 privateintremainedMines;//未标记的雷数 privateintopenedBlocks;//已经翻开的方块数 privateBlock[][]blocks;//方块数组1.3
MinePanel类和Block类
MinePanel类方法publicvoidinitMinePanel(introws,intcols,intmines)//初始化参数privatevoidcreateBlocks()//创建小方块privatevoidlayMines()//随机布雷privatevoidcountMines(introw,intcol)//计算指定方块周围的雷数publicvoidpaint(Graphicsg)//画出雷区publicDimensiongetPreferredSize()1.3
MinePanel类和Block类将雷区加入到MineFrame中在MineFrame类中添加属性 MinePanelminePanel; privateintrows; privateintcols; privateintmines;添加initParameter方法privatevoidinitParameter(introws,intcols,intmines){ this.rows=rows; this.cols=cols; this.mines=mines;}1.3
MinePanel类和Block类将雷区加入到MineFrame中修改构造方法
publicMineFrame(){ createMenu(); createUpPanel(); initParameter(10,10,10); minePanel=newMinePanel(this,rows,cols,mines); Containerc=this.getContentPane(); c.add(upPanel,BorderLayout.NORTH); c.add(minePanel,BorderLayout.CENTER);
this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.pack();
this.setLocationRelativeTo(null);
this.setResizable(false);
this.setVisible(true); }1.4实现扫雷功能翻开小方块在MineFrame类中添加属性 privatebooleangamming;//正在扫雷? privatebooleanstoped; //游戏已停止?在MineFrame类中添加set、get方法修改MineFrame类的initParameter()方法MinePanel类添加鼠标监听器类MinePanel类添加Open()方法
注册鼠标监听器1.4实现扫雷功能处理输赢以及搜索方法wins()方法lose()方法
search()方法在open()方法中调用wins()方法、lose()方法、search()方法1.4实现扫雷功能加快扫雷进程
右键单击已经翻开的方块,如果该方块临近的雷已经全部标识出来,则翻开尚未翻开的相邻方块。1.4实现扫雷功能重新开始游戏
在“开始”按钮监听器中填写处理代码。。1.5选择游戏难度级别MineFrame添加grade属性添加grade属性添加get和set方法自定义难度对话框完善菜单监听器类在选择难度级别的菜单处理分支添加相应的代码。1.6实现计时功能
UpdateTimeTask类创建UpdateTimeTask类添加UpdateTimeTask类型的属性(MinePanel类中)启动计时与终止计时启动计时:鼠标监听器中,翻开第一个小方块开始计时。终止计时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国金属切割及焊接设备市场规模现状及投资规划建议报告
- 中国工程机械翻新轮胎行业发展监测及投资战略研究报告
- 2025年 湖南湘西自治州州直事业单位招聘考试笔试试题附答案
- 2025年 东北石油大学招聘考试笔试试题附答案
- 2020-2025年中国纺织专用设备行业市场运营现状及投资方向研究报告
- 磁悬浮风力发电机生产项目可行性研究报告
- 佛山机场可行性研究报告
- 中国脱脂洗净剂行业调查报告
- 苏州墨镜项目可行性研究报告范文模板
- 2025年中国猫饲粮市场全面调研及行业投资潜力预测报告
- 北师大版七年级上册数学27有理数的乘法课件(2课时)
- 安全生产标准化推进计划 模板
- 2023年黑龙江省文化和旅游系统事业单位人员招聘笔试模拟试题及答案解析
- 2023年江西新余市数字产业投资发展有限公司招聘笔试题库含答案解析
- LY/T 3323-2022草原生态修复技术规程
- 部编版六年级语文下册课件第1课《北京的春节》《腊八粥》
- 涂装工模拟练习题含答案
- 2023-2024学年河南省永城市小学数学二年级下册期末评估测试题
- 乳腺疾病的超声诊断 (超声科)
- 服务精神:马里奥特之路
- 《建筑施工安全检查标准》JGJ59-2011图解
评论
0/150
提交评论