c语言数据结构程序设计俄罗斯方块.doc
《c语言数据结构程序设计俄罗斯方块.doc》由会员分享,可在线阅读,更多相关《c语言数据结构程序设计俄罗斯方块.doc(17页珍藏版)》请在沃文网上搜索。
1、课程设计实验 系别班级学号姓名实验题目俄罗斯方块小游戏设计性 综合性自我评价在本次课程设计中,我负责编写游戏的界面和场景。这是很重要的工作,直接关系到玩家的游戏体验和对游戏的评价。所以我充分发挥想象力和创造力在场景位置安排上下了一番苦工,也和组内成员进行过多次的探讨,最终写出了一个具有美感的游戏场景,力求让用户在游戏中体验到给多的快感。更重要的是在此次程序设计中与组员在游戏框架上的讨论中学到了很多新知识,对数据结构的理解也在实践中得到了提高。教师评语能够实现实验要求的功能 全部 部分算法有新意 有 一般程序运行通过 全部 部分 算法注释说明 完善 仅有功能说明接口参数说明 有 无按期上交打印文
2、档资料及源程序 所有 部分综合设计说明报告结构 合理 不合理用户使用说明 完整 不全现场演示操作有准备 有 无问题解答流畅 流畅 不流畅独立完成实验 能 不能体现团队合作精神。 能够 不能成绩一、 需求分析我们对俄罗斯方块这个游戏一点也不陌生,知道游戏的玩法和实现后,我们很快就着手开干。游戏要有出现场景、方块、消除方块得分、判断游戏结束等几个大功能。结构清晰简洁便于分工。二、算法原理介绍游戏主要使用了数组这个数据结构。不过与以往的程序不同,这个游戏有一个大数组包含很多个小数组,大数组不断的吸收小数组内的元素,达到条件得分。三、概要设计1、功能块各函数列表2、场景的设置int map2817=0
3、,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,0,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,0,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,0,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0
4、,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0
5、,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1
6、,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1;void showmap()int i,j;for(i=5;i28;i+)for(j=1;j17;j+)gotoxy(2*j,i);if(j=1|j=2|j=15|j=16)printf();else if(i=26|i=27)printf();else if(mapij=1) printf();else if(mapij=0) printf();3、其余功能的实现(如方块的出现 下落 旋转 得分计
7、算 游戏结束条件判断等)(1) 旋转void roll() int i,j;p_xnext=p_x;p_ynext=p_y;for(i=0;i5;i+)for(j=0;j5;i-)for(j=3;j15;j+)if(mapij=1) flags=1;else flags=0;break;if(flags=1)pointrank+;for(j=3;j5;k-)mapkj=mapk-1j;i+;switch(pointrank)case 1:scores=scores+10;break;case 2:scores=scores+25;break;case 3: scores=scores+40;b
8、reak;case 4:scores=scores+60;break;default:scores=scores+0; gotoxy(40,15);printf(Your Score:%d,scores);pointrank=0;showmap();Sleep(300);(3)游戏结束判断int gameover()int i; for(i=3;i15;i+)if(map5i=1) return 1;return 0;四、测试分析1、游戏开始界面。2、游戏进行中,操作键为键盘数字2、4、6、8,其中2为加速下落,4为左移,6为右移,8为旋转。3、游戏介绍,按任意键退出游戏。游戏结束条件:当方块
9、高度到达顶部时,游戏自动停止,并提示Game Over。总结:需求分析方面:我们对俄罗斯方块这个游戏一点也不陌生,知道游戏的玩法和实现后,我们很快就着手开干。游戏要有出现场景方块消除方块得分判断游戏结束 等几个大功能。结构清晰简洁便于分工。问题:设计过程中遇到了些许难题,那就是如何才能可以在屏幕上指定位置显示内容。一开始发现很困难,不过在和组员讨论过后,我们发现 gotoxy()函数,十分简单的就解决了这个难题。数据结构:游戏主要使用了数组这个数据结构。不过与以往的程序不同,这个游戏有一个大数组包含很多个小数组,大数组不断的吸收小数组内的元素,达到条件得分。代码#include #includ
10、e #include #include #include #define MAX_BOX 7int p_x=5,p_y=1,map_x=1,map_y=1,p_xnext=5,p_ynext=1,scores=0,key1=0,flags=0,gamespeed=200,gamespeed1=200,pointrank=0;int MAX_X=17,MAX_Y=28;char key;int box55=0;int box_next_step55=0;int nextbox55=0; int boxtypeMAX_BOX55=0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,
11、1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,0,0,
12、0,0,0,0,0,0,0,0;int map2817=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,0,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,0,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,0,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 数据结构 程序设计 俄罗斯方块
