ImageVerifierCode 换一换
格式:DOCX , 页数:6 ,大小:22.42KB ,
资源ID:4065628      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4065628.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(俄罗斯方块设计思想.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

俄罗斯方块设计思想.docx

1、俄罗斯方块设计思想邮电大学通达学院算法与数据结构设计报告( 2016/ 2017学年第二学期)专业软件工程嵌入式学号*学号*学号*学号*指导教师兴国指导单位计算机学院计算机科学与技术系日期2017-5-26评分细则评分项优秀良好中等差遵守机房规章制度上机时的表现学习态度程序准备情况程序设计能力团队合作精神课题功能实现情况算法设计合理性报告书写认真程度容详实程度验收答辩情况评分等级(组长)(组员1)(组员2)(组员3)简短评语指导教师签名日期2017-5-27备注评分等级有五种:优秀、良好、中等、及格、不及格俄罗斯方块一、课题容实现俄罗斯方块游戏。主要功能为游戏界面显示、上下左右键响应以及当前得

2、分统计。通过该课题全面熟悉数组、字符串等的使用。掌握设计的基本方法及友好界面的设计。课题要求:1、游戏界面显示:下落方块和方块堆、左右移动、旋转、删除行等特效以及得分。2、动作选择:上下左右键对应于旋转、加速、左右移动的功能。3、得分统计判断:判定能否消除行、并统计得分总数等。扩展要求:1、用户数据管理。二、算法设计与分析三、I、俄罗斯方块游戏需要解决的问题包括(1)、随机产生方块并自动下移(2)、用键变体(3)、用键和键左右移动方块,按Q退出,按space暂停II、俄罗斯方块游戏需要设计的功能函数包括(1)、声明俄罗斯方块的结构体(2)、函数原型声明(3)、制作游戏窗口(4)、制作俄罗斯方块

3、(5)、判断是否可动(6)、随机产生俄罗斯方块类型序号(7)、判断是否满行并删除满行的俄罗斯方块(8)暂停,继续功能(9)新游戏创建(10)用户的创建,分数用户名的保存,查看分数Tetris类(主要类)该类包含main方法,应为应用程序的主类。该类用来创建游戏的用户界面,事件处理功能和menu餐单,用户信息的存储。整个程序从该类的main方法开始执行。成员变量:String userName;构造方法:Tetris部类:Members,TetrisblockTetrisblok类:用来设计游戏界面。游戏界面显示在由Tetrisblok类创建的整个用户界面的中(Center)区,游戏的即时分数、

4、方块的效果图及方的预览功能都在整个类里面实现。用来封装俄罗斯小方块。一个方块的属性是由方块1位置即*和y的坐标、颜色决定的。成员变量privateintblockType; Timer timer=null;privateintturnState; privateint*; privateinty; privateinti = 0; intj = 0; staticintscore = 0; intflag = 0; intdelay=1000;/ 定义已经放下的方块*=0-12,y=0-22; int map = newint1424; / 方块的形状第一组代表方块类型有S、Z、L、J、I、

5、O、T 7种第二组代表旋转几次第三四组为方块矩阵privatefinalintshapes成员方法:publicvoid newblock()publicvoid drawwall()publicvoid newmap()publicvoid newgame()publicvoid turn();publicvoid left(); publicvoid right(); publicvoid down() ; publicint blow(int *, int y, int blockType, int turnState); publicvoid delline() ; publicint

6、 gameover(int *, int y); publicvoid add(int *, int y, int blockType, int turnState); publicvoid paintponent(Graphics g); publicvoid keyPressed(KeyEvent e); publicvoid keyTyped(KeyEvent e)Members类:用来创建io流,在D盘中查找username.t*t文件,如果没有就创建。并且在username和score中间用:隔开,方便以后用split对其进行分割。成员变量private FileWriter fw=

7、null;private BufferedWriter bw=null;private FileReader fr=null;private BufferedReader br=null;Tetris tt=null; booleanvip=true;/如果有usernamet*t这个文件的话就返回true并且允许查看分数判断是否有用户已经创建了ArrayList al=new ArrayList();成员方法getMembers()saveMembers()getpaint()GetMembers()方法NameScore类:每一个用户的分数和存到一个对象NameScore类。ScorePa

8、nel类;这个是用来接收Tetris类中传递过来的储存NameScore对象的ArrayList集合,然后把用迭代器将集合中的每一个对象的username和score取出来然后放到Vector中。然后添加到JTable中三、算法实现算法实现(伪代码)四、测试数据及结果分析游戏运行新游戏开始超过边界游戏结束新游戏加速减速实现继续功能实现暂停功能得到成员的和分数经过调试和修改,程序完全实现设计要求,成功模拟了俄罗斯方块的运行过程和游戏效果,只是界面略微简陋,但已从程序层面上实现了游戏,达到了这次实训的要求和目的。程序正常生成方块,根据速度值每隔一定时间自动下落,如有操作按键按下,根据按键实现位移和

9、变形。当方块满一行后,可以消除该行,同时记录分数和等级。五、调试过程中的问题1.刚开始的时候在障碍物的问题上总是出现数组越界错误2.俄罗斯方块的变形问题,不是顺时针变形,原来是方块数组的排序出现错误2.在添加事件的时候点击新游戏分数不刷新,后来在tetris类中的newgame中添加了score=0之后解决了问题4.在实现加速和减速的问题上,一开始speed控制的是在时间间隔不变的情况下,变化方块每次跳动的距离,发现比较麻烦后来改用在每次跳动距离不变的情况下,改变事件发生的间隔,间隔越短就越快,但是只能大于0并且小于15005.在点击暂停按钮之后然后点击新游戏会出现错误6.在部类调用外部类的变

10、量的时候出现错误;7.在程序刚开始运行的时候,弹出来的Input框,如果我没有进行任何处理的话,会报空指针异常虽然我在下面加上了如果username=null但是并没有运行,后来知道原来在if选项中我的username.equal(“”)|username=null写颠倒过来了导致。8.在实现用户信息管理的时候用的是io流储存,将每次输入的用户名存在username的t*t文件下面,如果没有这个文件的话要先创建。9.在对t*t文本中的容进行分割处理的时候,spilt写了但没作用到网上一查,我当时用的是:进行分割,所以split应该写成split(“/:”)而且返回的是一个数组;第一个数temp

11、0,第二个数temp1;10.在实现将用户信息返回到新的jpanel上面的时候,ScorePanel总是得不到从Tetris传过来的值,显示一个异常,根据断点找到是在迭代器中it.ne*t返回的是一个对象,而且最好的实在实例化一个迭代器的时候对其进行泛型。在将迭代器改成泛型之后顺利解决六、总结15240223 沙伏全:通过课程的设计,从设计到到完成完整的开发过程,同时对所涉及的学科有了更深入的了解。增加了实践经验,为今后其他平台的开发打下了坚实的基础。在设计程序中主要是局限于读课本的知识和概念,但很少自己亲自动手去编写代码,总是眼高手低,当真正的去编写这个俄罗斯游戏的时候就体会到编写代码真的好

12、难,尤其是刚开始的想的时候,根本不知道如何下手。后来通过上网查询和请教一些编程比较好的同学后才有了三个基本的思路,自己又重新翻阅了一下课本,将课本上的知识又重新细致的复习了一遍,最终借助于网络和同学的帮助完成了这个实验。通过这个实验发现自己在编程方面还有很大的欠缺,不过通过这个实验带给我最大的收获,必须要亲自动手多写,多看代码才能真正的做好15240227 源杞:在这两个星期里,我们专业的学生在专业老师的带领下进行了程序实习学习。在这之前,我们已经对c语言、java、数据结构。对这些学科有了一定的了解,但是也仅仅是停留在了解的围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到有些棘

13、手。在实验课上,我们完成多个实验,在这个阶段的学习中,我从认识到熟悉,而后到能够自主运用。通过对Java的了解,我发现它确实有很多方便之处,它集抽象性、封装性、继承性和多态性于一体,实现了代码重用和代码扩充,提高了软件开发的效率。对于我们这个专业来说学好Java语言是很重要的,所以在实验自工程中我都尽力理解java编程思想、掌握基础。此次试验收益匪浅。15240225 王鹏焱:之前都是看视频,根据视频上面的思路和步骤来写代码,没有整体的思想。通过这次实验是我第一次自己构思,自己根据之前写过的项目的经验来给这次的俄罗斯添加了数据管理功能,和事件的监听事件。部类和外部类之前都是在书上看的没有动手写过,晓得了部类和外部类之间的关系和部类调用外部变量应该注意的地方。这次的代码仍有一些问题,程序的扩展性不好。这次的实验也让我认识到程序之外的一些问题,容易紧8。以后我要注意这个问题。还有通过这次的实验,让我认识到写程序一定要在自己头脑清晰的时候写。不然会出现很多低级错误

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1