欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    c语言数据结构程序设计俄罗斯方块.doc

    • 资源ID:835876       资源大小:93.62KB        全文页数:17页
    • 资源格式: DOC        下载积分:20积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要20积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c语言数据结构程序设计俄罗斯方块.doc

    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,

    13、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,0,0,

    14、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,1,0,

    15、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,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;extern void showlogo();void gotoxy(int x,int y)/gotoxy在TC中是在system.h库文件里的一个函 COORD c; c.X=x-1; c.Y=y-1; SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c); void

    16、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();void next_box()int type,i,j; srand(time(NULL); type=rand()%6;for(i=0;i5;i+)for(j=0;j5;j+)nextboxij=boxtypetypeij;gotoxy(40,6);prin

    17、tf(Next:);gotoxy(40,7);for(i=0;i5;i+)for(j=0;j5;j+)gotoxy(40+2*j,7+i);if(nextboxij=1) printf();else printf( );int judgein()int i,j;for(i=0;i5;i+)for(j=0;j5;j+)if(box_next_stepij=1)if(mapp_ynext+ip_xnext+j=1)return 0;return 1;int gameover()int i; for(i=3;i15;i+)if(map5i=1) return 1;return 0;void roll

    18、()p_xnext=p_x;p_ynext=p_y;int i,j;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;break;case 4:scores=scores+60

    19、;break;default:scores=scores+0; gotoxy(40,15);printf(Your Score:%d,scores);pointrank=0;showmap();Sleep(300);void main()showlogo();gotoxy(50,20);printf(w 转向 s 加速下降);gotoxy(50,21);printf(a 左 d 右);int type,flag1=1,i,j,flag=0,flag2=1;showmap(); next_box();Sleep(1000);srand(time(NULL); type=rand()%6;for(

    20、i=0;i5;i+)for(j=0;j5;j+)boxij=boxtypetypeij; for(i=0;i5;i+) for(j=0;j5;j+) gotoxy(2*p_x+2*j,p_y+i); if(boxij=1&mapp_y+ip_x+j=0) printf(); gotoxy(40,15);printf(Your Score:0);Sleep(gamespeed);Here:while(1) if(!kbhit() for(i=0;i5;i+) for(j=0;j5;j+) box_next_stepij=boxij; p_xnext=p_x; p_ynext=p_y+1; fla

    21、g1=judgein();if(flag1=0) for(i=0;i5;i+) for(j=0;j5;j+) gotoxy(2*p_x+2*j,p_y+i); if(boxij=1&mapp_y+ip_x+j=0) printf(); for(i=0;i5;i+)for(j=0;j5;j+)if(boxij=1)mapp_y+ip_x+j=1;flag=gameover();if(flag!=0)gotoxy(10,10);printf( ); gotoxy(10,12);printf( );gotoxy(10,11);printf( Game Over );gotoxy(40,20);bre

    22、ak;/应该修改!elsescore();p_x=5;p_y=1; for(i=0;i5;i+) for(j=0;j5;j+) boxij=nextboxij; next_box(); Sleep(300);else for(i=0;i5;i+)for(j=0;j5;j+) gotoxy(2*p_x+2*j,p_y+i); if(boxij=1&mapp_y+ip_x+j=0) printf();p_y+; for(i=0;i5;i+) for(j=0;j5;j+) gotoxy(2*p_x+2*j,p_y+i); if(boxij=1&mapp_y+ip_x+j=0) printf(); S

    23、leep(gamespeed); gamespeed=gamespeed1;goto Here; else key=getch(); switch(key)casew:caseW:roll();flag2=judgein(); if(flag2=1)for(i=0;i5;i+)for(j=0;j5;j+) gotoxy(2*p_x+2*j,p_y+i); if(boxij=1&mapp_y+ip_x+j=0) printf(); for(i=0;i5;i+) for(j=0;j5;j+) boxij=box_next_stepij; goto Here;casea:caseA:p_xnext=

    24、p_x-1; p_ynext=p_y;flag2=judgein();if(flag2=1)for(i=0;i5;i+)for(j=0;j5;j+) gotoxy(2*p_x+2*j,p_y+i); if(boxij=1&mapp_y+ip_x+j=0) printf(); p_x-; goto Here;cased:caseD:p_xnext=p_x+1; p_ynext=p_y;flag2=judgein();if(flag2=1)for(i=0;i5;i+)for(j=0;j5;j+) gotoxy(2*p_x+2*j,p_y+i); if(boxij=1&mapp_y+ip_x+j=0) printf(); p_x+;goto Here;cases:caseS:gamespeed=50;goto Here;default: goto Here;


    注意事项

    本文(c语言数据结构程序设计俄罗斯方块.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922