版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、*实践教学实践教学*软件学院(专科)软件学院(专科)2014 年秋季学期计算机应用基础课程设计计算机应用基础课程设计 说明书题题 目:目:俄罗斯方块游戏的设计俄罗斯方块游戏的设计专业班级:专业班级:2015 级软件级软件 4 班班姓姓 名:名:边鑫边鑫学学 号:号:1517700420指导教师:指导教师:周小健周小健成成 绩:绩:兰州理工大学软件学院(专科) 计算机应用基础课程设计i目录目录目录目录.I摘要摘要.I序言序言.II人员分工安排人员分工安排.III1 1、需求分析、需求分析.11.1 游戏方块需求.11.2 游戏控制的需求.12、设计思路、设计思路.22.1 方块:.22.2 主要
2、操作:.23、详细设计、详细设计.43.1 设计流程图.43.2 函数功能图 .54、运行调试与分析讨论、运行调试与分析讨论.64.1 游戏界面.65、设计体会与小结、设计体会与小结.8 兰州理工大学软件学院(专科) 计算机应用基础课程设计I摘要摘要近年来,随着游戏产业的突飞猛进,游戏玩家的技术也是与日俱增, 当你看见游戏高手完美的表演时,你是否想过我也能达到那种水平,本程序采用全世界最金典的游戏俄罗斯方块作为背景,程序设置了键盘选择方式,游戏运行时随着等级的提高而速度加快,这需要玩家快速操作。因此,本程序主要意义是为高手玩家提供训练平台。其次也可为刚踏入游戏领域的新手们,提供一个很好的锻炼机
3、会。本次课程设计主要解决利用 C 语言设计实现俄罗斯方块游戏的算 法、游戏内部功能、游戏区域的绘图的程序设计。对于每个俄罗斯方块各自的形态变化改变到下一个形态利用数组来实现,在程序设计中,直接从架构的其中一个类对象中继承下来,将它完善而变成有某功能特性的物件对象。关键词:关键词: 俄罗斯方块 数组 数据结构 算法 兰州理工大学软件学院(专科) 计算机应用基础课程设计II序言序言俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,它曾造成的 轰动与造成的经济价值可言说是游戏史上的一件大事。这款游戏最初是由苏联的游戏制作人 Alex Pajitnov 制作的,它看似简单但却变化无穷,令人上瘾。相
4、信大多数用户都还记得为它痴迷得茶饭不思不想的那个俄罗斯方块时代。俄罗斯方块最早还是出现在PC 机上,而我国的用户都是通过红白机了解、喜欢上它的。现在联众又将重新掀起这股让人沉迷的俄罗斯方块风潮。对于一般用户来说,它的规则简单,容易上手,且游戏过程变化无穷,俄罗斯方块游戏现在基本上是每个手机必备的游戏,种类千变万化,多种多样俄罗斯方块是个老幼皆宜的小游戏,是经久不衰的一款游戏,自从它诞生 那天起就一直深受人们的喜爱。几乎每个人都玩过这个游戏,也是人们接触最多的一款游戏,它实现由四块正方形的色块组成,然后存储在一个数组的四个元素中,计算机随机产生不同七种类型的方块,根据计算机时钟控制它在一定的时间
5、不停得产生,用户根据键盘的四个方向翻转、向左、向右和向下操作, (控制键的实现是由键盘的方向键实现) 。然后程序根据这七种方块堆叠成各种不停得模型,可以吸引更多的小玩家,让人觉得更加的有趣,使人的视觉得到冲击,更加的轻松.兰州理工大学软件学院(专科) 计算机应用基础课程设计III人员分工安排人员分工安排(1 1)小组负责人:)小组负责人: 高原高原 分工:分工: 调试与检查(2 2)小组成员)小组成员 1 1: 岳生耀岳生耀 分工:分工:界面设计(3 3)小组成员)小组成员 2 2: 边鑫边鑫 分工:分工:方块的设计与变形兰州理工大学软件学院(专科) 计算机应用基础课程设计11 1、需求分析、
6、需求分析1.1 游戏方块需求游戏方块需求 随机给出不同的形状(长条形、Z 字形、反 Z 形、田字形、7 字形、反 7 形、T 字型)下落填充给定的区域,若填满一条便消掉,记分,当达到一定的分数时,过关.1.2 游戏控制的需求游戏控制的需求游戏控制分为多个方面,包括画面绘制,控制命令的获取,控制命令的分配、控制命令的处理,方块的绘制,方块的移动,方块的旋转,方块下落和消层以及计分等。兰州理工大学软件学院(专科) 计算机应用基础课程设计22、设计思路、设计思路方块要实现变形,要能通过键盘接收变形指令(即上键),将所得信号传递给信号接收函数,再通过信号处理函数改变当前方块的 ID 值,最后根据新的
7、ID 值画出新的图形,此时即实在了方块的变形。2.1 方块:方块:每个方块都要记录自己的 ID、形状。形状采用 4 对整数坐标来表示,分别记录其 4 个小方块的相对位置(以方块内或旁边任一点为中心,称为参考点)。建议可以在方块类中定义一个或多个数组,将每种 ID 的方块的形状数据存储好(都是一些固定的数据),这样产生一个方块时只需要提供其 ID 即可。为了处理方块的旋转,我们不能只记录上述。7 种方块,而应该把它们旋转后产生的每种形状都认为是一种不同的方块(因为它们的 4 对坐标都不同),然后在方块 ID 之间建立映射关系,即哪种 ID 的方块旋转后变成哪种 ID 的方块,只要求处理一个方向的
8、旋转。这个映射关系也可以用 c 数组来实现。此外,方块还要记录自己的参考点在指定的游戏区域中的位置。2.2 主要操作:主要操作:填充:把自己填充到指定的游戏区域中。返回填充成功或失败的信息。清除:把自己从指定的游戏区域中清除。移动:在指定的游戏区域中移动,包括向左、右、下移动,以 1 个单元格为单位。如果可以移动,则修改参考点的位置,并在指定的游戏区域中重新填充自己(先清除、然后修改参考点位置,再填充)。返回是否移动成功的信息。旋转:在指定的游戏区域中旋转一次,此时参考点位置不变,但要改变自己的 ID,然后在指定的游戏区域中重新填充自己(先清除、然后修改参考点位置,再填充)。兰州理工大学软件学
9、院(专科) 计算机应用基础课程设计3资 数源 据消息控制信息显 数示 据 3-1 设计思路图资源文件用户操作按键游戏事件处理游戏资源控制系统屏幕显示兰州理工大学软件学院(专科) 计算机应用基础课程设计43、详细设计、详细设计3.1 设计流程图设计流程图否否 是开始随机出示方块显示下一个方块。结算分数,结束处理。实现方块的旋转加分,速度改变时间指针设定。判断是否已满判断是否到底游戏结束兰州理工大学软件学院(专科) 计算机应用基础课程设计5 3-1 设计流程图3.2 函数功能图函数功能图 3-2 函数功能图界面设置俄罗斯方块随机显示方块并显示下一个方块的旋转移动下落判断能否继续下落分数的改变和速度
10、的设置兰州理工大学软件学院(专科) 计算机应用基础课程设计64、运行调试与分析讨论、运行调试与分析讨论4.1 游戏界面游戏界面图 4-1 游戏开始界面图 4-2 游戏运行界面 兰州理工大学软件学院(专科) 计算机应用基础课程设计7图 4-3 游戏结束界面兰州理工大学软件学院(专科) 计算机应用基础课程设计85、设计体会与小结、设计体会与小结本次课程设计,用 c 语言实现了一个简易的俄罗斯方块游戏。了解了 c 语言的强大特性,游戏是在速度上的高效性,是其他编程语言无法企及的。需求分析,概要设计,详细设计在编程中的重要性是不言而喻的。正确、高效的分析、设计为后面的编程打下了坚实的基础,后面的工作就
11、顺利成章了。当然,在需求分析、概要设计、详细设计阶段是需要通过不断的讨论、论证来对项目进行更改的代码实现阶段就是软件的具体实现,通过编码来实现需求中的功能。在代码实现阶段可能会遇到各种问题,此时有可能就要对需求设计乃至需求分析进行更改。测试阶段同样重要。在本次软件设计中,在测试阶段就发现了游戏测试错误问题。后来想到了通过修改程序结构来解决这个问题,但是,这样代价是惨重的。这就意味着以前的工作几乎都白做了。后来通过查找资料,通过更改背景刷新模式,问题得到基本解决。正确的功能模块划分是此次课程设计能够顺利完成的关键,通过小组成员完成各个模块,然后将各个模块合并到系统框架中,然后系统得以实现.兰州理
12、工大学软件学院(专科) 计算机应用基础课程设计9参考文献1 C 程序设计语言(第二版,新版) ,机械工业出版社,美Brian W.Kernighan,徐宝文,李志译,20042 C 语言参考手册(原书第 5 版),机械工业出版社,美Samuel P.Harbison ,Guy L.Steele,邱仲潘译,20033 C 语言程序设计经典实验案例集,高等教育出版社,何钦铭,20124 C 语言教程(第 4 版) ,机械工业出版社,美Al Kelley, Ira Pohl,徐波译,20075 标准 C 语言基础教程(第 4 版) ,电子工业出版社,20066 C 程序设计(第三版) ,潭浩强等,清
13、华大学出版社,20057 C 语言课程设计, 清华大学出版社,王新、孙雷,20098 C 程序设计语言(第二版,新版) ,机械工业出版社,美Brian W.Kernighan,徐宝文,李志译,20049 C 语言参考手册(原书第 5 版),机械工业出版社,美Samuel P.Harbison ,Guy L.Steele,邱仲潘译,200310C 语言程序设计经典实验案例集,高等教育出版社,何钦铭,201211C 语言教程(第 4 版) ,机械工业出版社,美Al Kelley, Ira Pohl,徐波译,200712标准 C 语言基础教程(第 4 版) ,电子工业出版社,200613C 程序设计
14、(第三版) ,潭浩强等,清华大学出版社,200514C 语言课程设计, 清华大学出版社,王新、孙雷,2009兰州理工大学软件学院(专科) 计算机应用基础课程设计10致谢致谢通过本次 C 程序课程设计,我觉得对自己提高很大:克服了的偷懒的毛病,这在我以后的学习和工作中的心理定位与调节有很大的帮助。我感受到了编程是一项非常烦琐周密的活动,他不但需要一个人周密的思考问题的能力,处理问题的能力,还需要有足够的耐心和严谨治学的作风,来不得半点马虎。本次我通过课程设计学会了团体合作,也学会了怎样去借鉴别人的方法和经验,知道如何去查找资料和整合处理这些资料的能力,这为以后的大学毕业打下了一个初步的基础使我受
15、益最大的是享受到了一种成功的喜悦。上网和上图书馆查找资料,编写 C 语言原程序,进行编译,这个环节是一个非常痛苦和艰难的,常常会因为一小点的错误而在编译失败与再次修改的漫漫循环之路中,但失败的越多,对人的考验就越多,在编译运行成功之后的享受成功的喜悦也就越多,另外在调试程序的过程中不断的思考和运用已经学到的知识,这对于自己是有很大的提高的。这个俄罗斯方块原程序的最大特点是采用了在主函数中调用子函数思想,每一种功能都是用子函数的办法来进行处理,简洁,清晰,方便,不容易出现错误。由于所学的知识不多,自己的编程经验不足,按现有的知识水平有些东西暂时还无法解决,还有待于在以后的学习中不断提高和改进!兰
16、州理工大学软件学院(专科) 计算机应用基础课程设计11附录附录#include#include#include#include#include #include#define Ymap 24 /*游戏界面竖直长度*/#define Xmap 30 /*游戏界面水平长度*/#define TUAN 2 /*方块的符号*/ #define UP 72 /用于区分#define LEFT 75 /各个按键#define RIGHT 77 /并非键值#define DOWN 80 /*从这里开始分别是 5 种方块的构图*/int l33=1,0,0,1,1,1,0,0,0;int i44=1,1,1,
17、1,0,0,0,0,0,0,0,0,0,0,0,0;int o22=1,1,1,1;int z33=0,1,1,1,1,0,0,0,0;int t33=0,1,0,1,1,1,0,0,0;char wallYmap+1Xmap+1; /游戏边界int biaojiYmap+1Xmap+1; /用来标记全局变化int times=200; /游戏运行的速度int key;int chenji; /用来存放得分。int keydown() /此函数用来接受一个按键,并返回按键的值(并非键值)char c;if(c=getch()0)c=getch();return c;兰州理工大学软件学院(专科)
18、 计算机应用基础课程设计12void gotoxy(int a,int b) /此函数用来讲光标移动到(x,y)坐标去 int x=0 x0b; HANDLE hInput, hOutput; COORD loc; loc.X = a; loc.Y=b; hOutput = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hOutput, loc); void HideCursor() /此函数用于隐藏光标。CONSOLE_CURSOR_INFO cursor_info = 1, 0; SetConsoleCursorInfo
19、(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);void Wall() /画地图int i,j,k=0;for(i=0;i=Ymap;i+)for(j=0;j=Xmap;j+)if(i=0 | j=0 | i=Ymap | j=Xmap)wallij=#;elsewallij= ;for(i=0;i=Ymap;i+)for(j=0;j=Xmap;j+)printf(%c,wallij);k+;if(k%(Xmap+1)=0)printf(n);gotoxy(Xmap+3,Ymap/4);printf(得分:);gotoxy(Xmap+4,
20、Ymap/4+1);printf(%d,chenji);兰州理工大学软件学院(专科) 计算机应用基础课程设计13gotoxy(Xmap+3,Ymap/4+3);printf(下一个是:);gotoxy(Xmap+3,Ymap/4+9);printf(按上键时是随机旋转哦);/从这里开始是关于方块“L”的一系列函数void L(int x,int y) /生成该方块int i,j;for(i=0;i3;i+)for(j=0;j3;j+)if(lij=1)gotoxy(x+j,y+i);printf(%c,TUAN);elsecontinue;void _L(int x,int y) /摸去该方块
21、int i,j;for(i=0;i3;i+)for(j=0;j3;j+)if(lij=1)gotoxy(x+j,y+i);printf( );elsecontinue;兰州理工大学软件学院(专科) 计算机应用基础课程设计14void L_change() /旋转该方块。int c;memset(l,0,sizeof(l);c=rand()%8+1;switch(c)case 1:l00=l10=l11=l12=1;break;case 2:l01=l11=l20=l21=1;break;case 3:l00=l01=l02=l12=1;break;case 4:l00=l01=l10=l20=
22、1;break;case 5:l02=l10=l11=l12=1;break;case 6:l00=l01=l11=l21=1;break;case 7:l00=l01=l02=l10=1;break;case 8:l00=l10=l20=l21=1;break;/从这里开始是关于方块“I”的一系列函数void I(int x,int y) /生成该方块int a,b;for(a=0;a4;a+)兰州理工大学软件学院(专科) 计算机应用基础课程设计15for(b=0;b4;b+)if(iab=1)gotoxy(x+b,y+a);printf(%c,TUAN);elsecontinue;void
23、 _I(int x,int y) /摸去该方块int a,b;for(a=0;a4;a+)for(b=0;b4;b+)if(iab=1)gotoxy(x+b,y+a);printf( );elsecontinue;void I_change() /旋转该方块。int c;memset(i,0,sizeof(i);c=rand()%2+1;switch(c)case 1:i00=i01=i02=i03=1;break;case 2:i00=i10=i20=i30=1;break;兰州理工大学软件学院(专科) 计算机应用基础课程设计16/从这里开始是关于方块“o”的一系列函数void O(int
24、x,int y) /生成该方块int i,j;for(i=0;i2;i+)for(j=0;j2;j+)if(oij=1)gotoxy(x+j,y+i);printf(%c,TUAN);elsecontinue;void _O(int x,int y) /摸去该方块,此方块不用旋转。int i,j;for(i=0;i2;i+)for(j=0;j2;j+)if(oij=1)gotoxy(x+j,y+i);printf( );elsecontinue;兰州理工大学软件学院(专科) 计算机应用基础课程设计17/从这里开始是关于方块“Z”的一系列函数void Z(int x,int y) /生成该方块i
25、nt i,j;for(i=0;i3;i+)for(j=0;j3;j+)if(zij=1)gotoxy(x+j,y+i);printf(%c,TUAN);elsecontinue;void _Z(int x,int y) /摸去该方块int i,j;for(i=0;i3;i+)for(j=0;j3;j+)if(zij=1)gotoxy(x+j,y+i);printf( );elsecontinue;void Z_change() /旋转该方块int c;memset(z,0,sizeof(z);兰州理工大学软件学院(专科) 计算机应用基础课程设计18c=rand()%4+1;switch(c)c
26、ase 1:z10=z01=z02=z11=1;break;case 2:z00=z10=z11=z21=1;break;case 3:z00=z01=z11=z12=1;break;case 4:z01=z10=z11=z20=1;break;/从这里开始是关于方块“T”的一系列函数void T(int x,int y) /生成int i,j;for(i=0;i3;i+)for(j=0;j3;j+)if(tij=1)gotoxy(x+j,y+i);printf(%c,TUAN);elsecontinue;void _T(int x,int y) /摸去int i,j;for(i=0;i3;i
27、+)兰州理工大学软件学院(专科) 计算机应用基础课程设计19for(j=0;j3;j+)if(tij=1)gotoxy(x+j,y+i);printf( );elsecontinue;void T_change() /旋转int c;memset(t,0,sizeof(t);c=rand()%4+1;switch(c)case 1:t01=t10=t11=t12=1;break;case 2:t01=t11=t21=t10=1;break;case 3:t21=t10=t11=t12=1;break;case 4:t00=t10=t20=t11=1;break;/从这里开始是关于各个方块移动的
28、函数void L_move()/设置初始位置int x=Xmap/2-1;兰州理工大学软件学院(专科) 计算机应用基础课程设计20int y=0;int i,j;/判断循环的变量int c,d,e,f;/必要游戏参数变量。L(x,y);Sleep(500);_L(x,y);while(1)c=0;d=0;e=0;y+;L(x,y);Sleep(times);for(i=0;i3;i+)for(j=0;j=e)e=j;if(biaojiy+i+1x+j=1)d=1;if(y+c+1=Ymap | d=1)break;_L(x,y);while(_kbhit()=1) /判断键盘中是否有键被按下。
29、f=0;key=keydown(); /判断按下的键是什么。switch(key)case LEFT:for(i=0;i3;i+)for(j=0;j3;j+)兰州理工大学软件学院(专科) 计算机应用基础课程设计21if(lij=1)if(biaojiy+ix+j-1=1)f=1;if(x-1=0 | f=1)L(x,y);break;x-;L(x,y);break;case RIGHT:for(i=0;i3;i+)for(j=0;j3;j+)if(lij=1)if(biaojiy+ix+j+1=1)f=1;if(x+e+1=Xmap | f=1)L(x,y);break;x+;L(x,y);b
30、reak;case UP:L_change();L(x,y);break;case DOWN:for(i=0;i3;i+)for(j=0;j3;j+)兰州理工大学软件学院(专科) 计算机应用基础课程设计22if(lij=1)if(biaojiy+i+1x+j=1)d=1;if(y+c+1=Ymap | d=1)L(x,y);break;y+;L(x,y);break;Sleep(25);_L(x,y);if(y+c+1=Ymap | d=1)y-;break;for(i=0;i3;i+)for(j=0;j3;j+)if(lij=1)biaojiy+ix+j=1;void I_move() /同
31、 L_moveint x=Xmap/2-1;int y=0;int a,b;int c,d,e,f;兰州理工大学软件学院(专科) 计算机应用基础课程设计23I(x,y);Sleep(500);_I(x,y);while(1)c=0;d=0;e=0;y+;I(x,y);Sleep(times);for(a=0;a4;a+)for(b=0;b=e)e=b;if(biaojiy+a+1x+b=1)d=1;if(y+c+1=Ymap | d=1)break;_I(x,y);while(_kbhit()=1)f=0;key=keydown();switch(key)case LEFT:for(a=0;a
32、4;a+)for(b=0;b4;b+)if(iab=1)if(biaojiy+ax+b-1=1)f=1;兰州理工大学软件学院(专科) 计算机应用基础课程设计24if(x-1=0 | f=1)I(x,y);break;x-;I(x,y);break;case RIGHT:for(a=0;a4;a+)for(b=0;b4;b+)if(iab=1)if(biaojiy+ax+b+1=1)f=1;if(x+e+1=Xmap | f=1)I(x,y);break;x+;I(x,y);break;case UP:I_change();I(x,y);break;case DOWN:for(a=0;a4;a+
33、)for(b=0;b4;b+)if(iab=1)if(biaojiy+a+1x+b=1)d=1;兰州理工大学软件学院(专科) 计算机应用基础课程设计25if(y+c+1=Ymap | d=1)I(x,y);break;y+;I(x,y);break;Sleep(25);_I(x,y);if(y+c+1=Ymap | d=1)y-;break;for(a=0;a4;a+)for(b=0;b4;b+)if(iab=1)biaojiy+ax+b=1;void O_move() /同 L_moveint x=Xmap/2-1;int y=0;int i,j;int c,d,e,f;O(x,y);Sle
34、ep(500);_O(x,y);while(1)兰州理工大学软件学院(专科) 计算机应用基础课程设计26c=0;d=0;e=0;y+;O(x,y);Sleep(times);for(i=0;i2;i+)for(j=0;j=e)e=j;if(biaojiy+i+1x+j=1)d=1;if(y+c+1=Ymap | d=1)break;_O(x,y);while(_kbhit()=1)f=0;key=keydown();switch(key)case LEFT:for(i=0;i2;i+)for(j=0;j2;j+)if(oij=1)if(biaojiy+ix+j-1=1)f=1;if(x-1=0
35、 | f=1)O(x,y);兰州理工大学软件学院(专科) 计算机应用基础课程设计27break;x-;O(x,y);break;case RIGHT:for(i=0;i2;i+)for(j=0;j2;j+)if(oij=1)if(biaojiy+ix+j+1=1)f=1;if(x+e+1=Xmap | f=1)O(x,y);break;x+;O(x,y);break;case DOWN:for(i=0;i2;i+)for(j=0;j2;j+)if(oij=1)if(biaojiy+i+1x+j=1)d=1;if(y+c+1=Ymap | d=1)O(x,y);break;y+;O(x,y);兰
36、州理工大学软件学院(专科) 计算机应用基础课程设计28break;Sleep(25);_O(x,y);if(y+c+1=Ymap | d=1)y-;break;for(i=0;i2;i+)for(j=0;j2;j+)if(oij=1)biaojiy+ix+j=1;void Z_move() /同 L_moveint x=Xmap/2-1;int y=0;int i,j;int c,d,e,f;Z(x,y);Sleep(500);_Z(x,y);while(1)c=0;d=0;e=0;y+;Z(x,y);Sleep(times);for(i=0;i3;i+)for(j=0;j=e)e=j;if(
37、biaojiy+i+1x+j=1)d=1;if(y+c+1=Ymap | d=1)break;_Z(x,y);while(_kbhit()=1)f=0;key=keydown();switch(key)case LEFT:for(i=0;i3;i+)for(j=0;j3;j+)if(zij=1)if(biaojiy+ix+j-1=1)f=1;if(x-1=0 | f=1)Z(x,y);break;x-;Z(x,y);break;case RIGHT:for(i=0;i3;i+)for(j=0;j3;j+)兰州理工大学软件学院(专科) 计算机应用基础课程设计30if(zij=1)if(biaoj
38、iy+ix+j+1=1)f=1;if(x+e+1=Xmap | f=1)Z(x,y);break;x+;Z(x,y);break;case UP:Z_change();Z(x,y);break;case DOWN:for(i=0;i3;i+)for(j=0;j3;j+)if(zij=1)if(biaojiy+i+1x+j=1)d=1;if(y+c+1=Ymap | d=1)Z(x,y);break;y+;Z(x,y);break;Sleep(25);_Z(x,y);if(y+c+1=Ymap | d=1)兰州理工大学软件学院(专科) 计算机应用基础课程设计31y-;break;for(i=0;
39、i3;i+)for(j=0;j3;j+)if(zij=1)biaojiy+ix+j=1;void T_move() /同 L_moveint x=Xmap/2-1;int y=0;int i,j;int c,d,e,f;T(x,y);Sleep(500);_T(x,y);while(1)c=0;d=0;e=0;y+;T(x,y);Sleep(times);for(i=0;i3;i+)for(j=0;j=e)e=j;if(biaojiy+i+1x+j=1)兰州理工大学软件学院(专科) 计算机应用基础课程设计32d=1;if(y+c+1=Ymap | d=1)break;_T(x,y);while
40、(_kbhit()=1)f=0;key=keydown();switch(key)case LEFT:for(i=0;i3;i+)for(j=0;j3;j+)if(tij=1)if(biaojiy+ix+j-1=1)f=1;if(x-1=0 | f=1)T(x,y);break;x-;T(x,y);break;case RIGHT:for(i=0;i3;i+)for(j=0;j3;j+)if(tij=1)if(biaojiy+ix+j+1=1)f=1;兰州理工大学软件学院(专科) 计算机应用基础课程设计33if(x+e+1=Xmap | f=1)T(x,y);break;x+;T(x,y);b
41、reak;case UP:T_change();T(x,y);break;case DOWN:for(i=0;i3;i+)for(j=0;j3;j+)if(tij=1)if(biaojiy+i+1x+j=1)d=1;if(y+c+1=Ymap | d=1)T(x,y);break;y+;T(x,y);break;Sleep(25);_T(x,y);if(y+c+1=Ymap | d=1)y-;break;for(i=0;i3;i+)兰州理工大学软件学院(专科) 计算机应用基础课程设计34for(j=0;j3;j+)if(tij=1)biaojiy+ix+j=1;/此函数用于当方块落满一行的时候
42、消去该行void xiaochu()int i,j;int sum=0,e;int qidian=0;int cYmap+1;memset(c,0,sizeof(c);for(i=0;iYmap+1;i+)e=0;for(j=0;jXmap+1;j+)if(biaojiij=1)e+;if(e=Xmap-1)ci=1;for(i=0;iYmap+1;i+)if(ci=1)for(j=0;jXmap+1;j+)biaojiij=0;sum+;chenji+=10;兰州理工大学软件学院(专科) 计算机应用基础课程设计35for(i=0;i0;i-)for(j=0;jXmap+1;j+)if(bia
43、ojiij=1)biaojii+sumj=1;biaojiij=0;for(i=0;iYmap+1;i+)for(j=0;jXmap+1;j+)if(i=0 | j=0 | i=Ymap | j=Xmap)continue;if(biaojiij=1)gotoxy(j,i);printf(%c,TUAN);elsegotoxy(j,i);printf( );gotoxy(Xmap+4,Ymap/4+1);printf(%d,chenji);for(i=0;i4;i+)for(j=0;j4;j+)gotoxy(Xmap+4+j,Ymap/4+5+i);兰州理工大学软件学院(专科) 计算机应用基础课程设计36printf( );/此函数操作游戏进程。void youxiguocheng()int j;int queue2=0,0;Wall();queue
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年辽宁省盖州市高二生物下册期末考试试卷带答案(B卷)
- 2026年青海省格尔木市高二生物下册期末考试试卷【A卷】附答案
- 2026年福建省永安市高二生物下册期末考试检测卷含答案(轻巧夺冠)
- 2026年云南省弥勒市高二生物下册期末考试检测卷(网校专用)附答案
- 2026年山西省古交市高二生物下册期末考试模拟卷含答案【培优A卷】
- 2026年云南省芒市高二生物下册期末考试试卷及参考答案【典型题】
- 2026年山东省海阳市高二生物下册期末考试试卷及答案【基础+提升】
- 2026年吉林省扶余市高二生物下册期末考试考试卷附参考答案【黄金题型】
- 2026年四川省什邡市高二生物下册期末考试考试卷(基础题)附答案
- 2026年河北省涿州市高二生物下册期末考试考试卷含答案【能力提升】
- 2026年高考英语全国一卷含解析及答案
- 2026年浸没式液冷数据中心项目可行性研究报告
- 市政工程商务培训课件
- 社区档案管理制度模板
- 河北房屋建筑和市政基础设施工程造价指标指数 编制标准
- 2026年及未来5年市场数据中国农业机器人行业市场调研及投资战略规划报告
- 确立的毕业论文制度
- 剧本杀剧本创作技巧与角色设计
- T∕CHBSA 001-2025 新生儿遗传代谢病串联质谱筛查实验室检测技术要求
- 胰腺炎护理查房
- 电梯安装工程吊装方案(3篇)
评论
0/150
提交评论