Java实训报告-扫雷

实训报告书

实训名称: JAVA程序设计实训

系 (部): 信息工程系

专业班级: 计算机科学与技术08-1

学生姓名:

学 号:

指导教师:

完成日期:

山东科技大学泰山科技学院

实训课题扫雷小游戏实训人姓名同组人员实训日期2011年1月10日至2011年1月13日实训成绩指导教师评语

指导教师签名:______________

_______年 ____ 月____日

目 录

目 录I

1 实训目的1

2 游戏“扫雷”系统的分析与设计1

2.1 系统功能描述1

2.2 系统模块设计1

3 主要代码清单2

3.1雷区布置2

3.2标记每一个板块周围雷的数量2

3.3游戏级别选择4

3.4雷数板+计时板4

3.5标左键单击事件5

3.6鼠标单击后6

4 程序运行与测试7

4.1游戏等级7

4.2游戏测试(以初级为例)8

5 实训总结8

“扫雷系统的设计与实现

1 实训目的

《》是计算机专业一门重要的专业技术基础。理论与实际应用相结合本课程将为整个专业的学习以及软件设计水平的提高打下良好的基础提高学生的能力,并培养基本的、良好的合作能力。…等组件,菜单主要包括开始,选择级别,标记,退出, 按钮的功能是重新开始新的游戏。

总体功能图

总体流程图

雷区设计流程图

3 主要代码清单

3.1雷区布置

MineArea类是javax.swing包中Jpanel容器的子类,实现了ActionListener和MouseListener接口,所创建的对象:mineArea是MineGame类中最重要的成员之一,作为一个容器添加到MineGame窗口的中心。

雷区布置定义一个二维数组分别表示雷的X轴、Y轴的位置,采用随机数的方法Math.random随机生成雷的位置。

/*取随机数,src:起始数 dst:终止数*/

public int getRandomNumber(int src, int dst) {

return src + (int) ((dst - src + 1) * Math.random());

}

/*初始化:雷,向二维数组中内插入数字9(雷)*/

public void initMine() {

int sum = 0;

int mineX;

int mineY;

do {

do {//随机生成一个雷的X,Y

mineX = getRandomNumber(0, wide - 1);

mineY = getRandomNumber(0, high - 1);

} while (nums[mineX][mineY] == 9);//不能重复设置类,否则不能用户要求的雷数

nums[mineX][mineY] = 9;

sum++;

} while (sum < mineCount);

}

因为每一个板块周围最多有8个板块,所以可以9插入数组表示雷,遍历已经安置了9的数组,根据数组中9的数量向其中安置数字1~8

/* 遍历已经安置了9(雷)的数组,根据雷数往内安置1~8数字*/

public void initNumber() {

for (int l = 0; l < wide; l++) {//l:列

for (int h = 0; h

int num = 0;//存1~8数字

if (nums[l][h] != 9) {//不是雷

if (l != 0 && h != 0 && nums[l - 1][h - 1] == 9) {//左上角

num++;

}

if (l != 0 && nums[l - 1][h] == 9) {//左

num++;

}

if (l != 0 && h != high - 1 && nums[l - 1][h + 1] == 9) {//左下

num++;

}

java小游戏实训报告心得_Java实训报告-扫雷.doc相关推荐

  1. javaee实验报告心得_java,web实验报告心得.doc

    java,web实验报告心得 java,web实验报告心得 JavaWeb实验报告 实验一 开发环境配置及Servlet程序设计 一.实验目的 1.了解并熟悉编程环境.编程工具,包括Tomcat.My ...

  2. C语言实现2048小游戏---粤嵌GE6818嵌入式系统实训

    C语言实现2048小游戏---粤嵌GE6818嵌入式系统实训 实现的全部功能: 功能演示: 版本介绍 简易版--大佬选这个 完整版--想保研.想得高分.想要装逼的同学选这个 至尊版--零基础的.想要装 ...

  3. 各种经典java小游戏_Java是这个世界上最好的语言!

    为什么? 请看TIOBE最新发布的编程语言排行榜: TIOBE开发语言排行榜每月更新一次,其结果可以用来检阅开发者的编程技能能否跟上趋势,或是否有必要作出战略改变,以及什么编程语言是应该及时掌握的. ...

  4. java文本编辑器课程设计报告_java课程设计报告 心得体会——计算器、文本编辑器.doc...

    java课程设计报告 心得体会--计算器.文本编辑器.doc 还剩 24页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内 ...

  5. 【Java】寒假答辩作品:Java小游戏

    文章目录 java入门小游戏[test] 游戏界面 前言 (可直接跳到程序介绍) 前期入门小项目 前期收获 后期自创关卡 熄灯问题拓展 新游戏拓展 实现切换关卡切换音乐 后续 java入门小游戏[te ...

  6. linux小型游戏系统设计,Linux平台下基于JAVA小游戏_设计文档.doc

    Linux课程设计报告 课题名称:<Linux平台下基于java小游戏设计> 专 业:2011级计算机科学与技术 组 长:043佘清泉 组 员:007陈威达 008陈学仁 026赖华标 0 ...

  7. java小游戏英文文献,连连看Java小游戏毕业设计论文

    连连看Java小游戏毕业设计论文 连连看连连看 JavaJava 小游戏毕业论文小游戏毕业论文 设计设计 学生姓名学生姓名 学学 号号 系系 别别 专专 业业 指导教师指导教师 软件 071 班 目目 ...

  8. Java小游戏:模仿微信群发红包

    Java小游戏:模仿微信群发红包 微信群主发普通红包,普通红包规则: 群主的一笔金额,从群主余额中扣除,平均分成n等分,让群员领取. 成员领取红包后,保存到余额中. 请根据规则,完成案例中所有类的定义 ...

  9. 《Java小游戏实现》:坦克大战

    <Java小游戏实现>:坦克大战 前面写了一个简单的聊天小程序,今天开始就写一个坦克大战的游戏,算是对Java相关小知识点的一个应用. 这个游戏的完成,我们也是分步完成,逐步累加,一个一个 ...

最新文章

  1. apache_svn
  2. 盛趣游戏 html5游戏,盛趣游戏谭雁峰:游戏破局的“精细”时代已来
  3. C# List 嵌套学习总结
  4. Java并发编程(7):使用synchronized获取互斥锁的几点说明
  5. 【随】WCF传输大数据的设置
  6. 世界上首个被数学证明安全的OS微内核seL4成立基金会
  7. (二十七)【2021 WWW】Learning Intents behind Interactions with Knowledge Graph for Recommendation
  8. Postman从入门到入门
  9. sublime生产力提升利器
  10. golang mysql分表_go分库分表 主从分离例子
  11. 一些关于直播间人货场的打造干货,直播电商新手必须要了解人货场的概念
  12. 【王道计组笔记】总线(2):性能指标分析
  13. PL/SQL数据类型
  14. jsp获取相对路径网址的方法 request.getContextPath()
  15. 如何将PDF转换成Word
  16. 邮编查询经纬度_行政区划省市区邮编区号拼音经纬度全面标准数据库 每月更新...
  17. rti connext dds 例子程序
  18. 利率上浮100bp是什么意思,利率浮动值60BP什么意思
  19. 开始使用WebRTC
  20. HDU 4598 Difference

热门文章

  1. crc循环冗余校验 php,crc 循环冗余校验
  2. 天源财富:钠离子电池储能技术迈上新台阶
  3. 34-Android之耳机音量加大时警告提示框问题(展锐SC9820E平台)
  4. D-Wave Leap量子云系统首次落地欧洲于利希超算中心
  5. 09 线性回归及矩阵运算
  6. 微信新功能-手机停机断网也可用微信充话费
  7. excel 无法编辑单元格,忘记保护密码,怎么撤销保护密码
  8. matlab中axis和axes,Matlab常用函数axes和axis
  9. APK 安装过程 及 原理 详解
  10. 实现财务自由 之 A 股上市公司股票同行业的排名情况(例如贵州茅台所属行业总市值排名)简单查看方法