Flash扫雷实验报告_第1页
Flash扫雷实验报告_第2页
Flash扫雷实验报告_第3页
Flash扫雷实验报告_第4页
Flash扫雷实验报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE本科学生实验报告项目组长_熊峰学号_成员熊峰,赖勇专业_软件工程(二专)实验项目Flash大作业扫雷指导教师及职称______开课学期14至_15学年_下_学期上课时间2015年3月19至6月6日一、实验设计方案实验名称:扫雷游戏实验时间:2015.3.19-6.6小组合作:是●否○小组成员:赖勇,熊峰1、目的与要求(1)根据自己的爱好和能力设计某一游戏、课件或网站,要求程序代码不得少于500行,个别作品可特殊处理,不得复制某一网络作品,且素材主要为原创。(2)小组合作完成一个Flash项目(3)熟练flash的基本操作,包括元件,帧,等简单操作;(4)熟练使用as3语言进行基本编程;(5)具有一定的创意与解决问题的能力;2、实验场地及仪器、设备和材料:设备:计算机软件:adabeflashprocs63、实验思路(实验内容、数据处理方法及实验步骤等):一、实验内容:(1)选择实验项目,这里我们经过比较后决定选择经典的扫雷游戏。(2)研究设计思路,实现方案:①准备项目所需资源②完整界面设计,包括各式按钮,游戏界面等③按钮事件监听,解决操作过程中棋盘ui变化以及游戏参数的变化。④完成游戏操作引擎,主要难题在扫雷中遇到显示空白区的递归问题⑤完成功能优化,设计游戏难度操作,添加计时操作,添加地雷标记等⑥ui优化,对界面进行优化指导老师对实验设计方案的意见:指导老师签名:年月日二、实验结果与分析1、实验目的、场地及仪器、设备和材料、实验思路等见实验设计方案2、实验现象、数据及结果实验现象整个扫雷游戏分为简单9X9,中等16X16,困难30X16三个等级,地雷个数分别为10,40,99个每次点击时显示周围可暴露的非雷区,在点击雷区时显示所有格子。由于在编写监听过程中右键存在问题,所以我们使用滚轮替代,滚动滚轮后标记雷,再次滚动取消标记,每次标记后总雷数减一。具体实现。简单,中等,困难等按钮点击事件,通过修改雷数,方格数设置不同等级,同时,随机放置地雷,绘制所有格子为盖住状态。格子的鼠标事件,包括鼠标放置在格子上方时变亮,以及点击事件,主要是点击事件,涉及的函数包括点开格子显示格子周围雷数的函数grid_content(),点开格子显示周围的可暴露情况的函数,后者较为复杂,具体实现方式:首先判断点开位置的八个方向的方格雷数情况,分为三种情况:雷(-1),周围无雷(0),周围有雷(雷数)。-1不显示,周围有雷显示雷数,0进行递归。滚轮事件,监听滚轮首先判断事件源是否已标记,如果已标记则取消标记,如果未标记则加入标记,同时,修改显示的雷数。3、对实验现象、数据及观察结果的分析与讨论:代码分析functionopen_empty(i:int,j:int){//打开空格子周围八个格子——————————————递归出问题 varm:int; if(i>0&&i<numX-1&&j>0&&j<numY-1) { for(m=0;m<3;m++) { addchild(i-1+m,j-1); //{ if(gridarr[i-1+m][j-1].number==0); //{; //open_empty(i-1+m,j-1); //} addchild(i-1+m,j+1); //{ if(gridarr[i-1+m][j+1].number==0); //{; //open_empty(i-1+m,j+1); //} } addchild(i-1,j); //if(gridarr[i-1][j].number==0) //{ //open_empty(i-1,j); //} addchild(i+1,j); //if(gridarr[i+1][j].number==0) //{ //open_empty(i+1,j); //} } if(i==0&&j!=0&&j!=numY-1) { for(m=0;m<2;m++) { addchild(i+m,j-1); addchild(i+m,j+1); } addchild(i+1,j); } if(i==numX-1&&j!=0&&j!=numY-1) { for(m=0;m<2;m++) { addchild(i+m-1,j-1); addchild(i+m-1,j+1); } addchild(i-1,j); } if(j==0&&i!=0&&i!=numX-1) { for(m=0;m<3;m++) { addchild(i-1+m,j+1); } addchild(i-1,j); addchild(i+1,j); } if(j==numY-1&&i!=0&&i!=numX-1) { for(m=0;m<3;m++) { addchild(i-1+m,j-1); } addchild(i-1,j); addchild(i+1,j); } if(i==0&&j==0) { addchild(i+1,j); addchild(i,j+1); addchild(i+1,j+1); } if(i==numX-1&&j==0) { addchild(i-1,j); addchild(i,j+1); addchild(i-1,j+1); } if(i==0&&j==numY-1) { addchild(i+1,j); addchild(i,j-1); addchild(i+1,j-1); } if(i==numX-1&&j==numY-1) { addchild(i-1,j); addchild(i,j-1); addchild(i-1,j-1); } gridarr[i][j].number=10;}整个项目,可以实现扫雷的大部分,功能,但是我们在实现递归显示周围无雷区时,遇到一些障碍,比如递归时,由于需要实现多重多方向的递归,导致整个递归函数只能执行一个方向的递归,比如,只能往左上角方向递归,最终,考虑的解决方案。通过我们的分析,产生的原因是因为在对open_empty进行递归时,并未

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论