资源描述:
《计算机实习报告-王慧昭》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2012年计算机实习报告计算机实习报告姓名:王慧昭班级:2011211110学号:2011210277小班序号:06指导老师:苗建松题目:俄罗斯方块邮箱:75490694@qq.com72012年计算机实习报告题目俄罗斯方块实验报告一.功能说明1.1总体功能说明主要完成俄罗斯方块界面的制作(控制台界面,方块不能出界面,不能与其他方块叠加),背景音乐的播放,系统在界面最上方可随机产生一种方块,当方块不能下落时,系统会在继续随机产生方块。游戏可暂停,可以控制方块的移动与旋转,当方块满一行时自动消行,并加分,在界面右侧
2、可显示下一个即将掉落的方块,随着分数的增加,游戏级别会越来越高(难度越来越大,下落速度越来越快),并记录最高得分,当方块满最高一行时,游戏结束(也可按ESC直接退出游戏),播放结束音乐。当游戏级别满10时,游戏通关,播放胜利音乐。1.2用户界面游戏主页面,提示用户操作暂停与继续,显示SCORE(得分),LEVEL(级别),NEXT(提示下一个下落方块),RECORD(最高得分记录)。方块下落界面由方框围成,方块内可实现方块的下落,旋转,消行,以及控制游戏的结束(即方块满最高一行或当LEVEL达到10)。1.3使用
3、方法72012年计算机实习报告键盘方向键上控制方块旋转,方向键左右控制方块左右移动,方向键下可使方块快速下落,回车键可暂停游戏,ESC可直接退出游戏。游戏难度为自动控制,每得10分,游戏级别会加1,难度也会相应增加(方块下落越来越快)。由于游戏会记录最高分,游戏级别越高,游戏者越会体验到游戏的乐趣。二.程序设计说明2.1总体设计框架程序执行流程:俄罗斯方块游戏主页面显示判断按键是否可行播放背景音乐随机产生一个方块是否按键是是是否否方块是否可以下落回车键,游戏暂停ESC键,游戏结束方向键右,方块右移方向键左,方块左
4、移方向键下,方块加速下落方向键上,方块旋转方块是停在最高一行否72012年计算机实习报告(接上图)否是游戏结束方块是否满一行否是消去一行模块划分:主页面显示:将游戏运行的主页面,以及提示用户操作,游戏者的得分,等级,记录显示出来。方块生成函数:用7个4*4数组表示出7种不同形状的方块。旋转函数:当用户按下方向键上时,实现方块的旋转。判断按键是否可行函数:判断方块在下一个位置(包括旋转,以及下落,左移,右移)是否可存在(即不能出界,不能与其他方块重叠),若能,则可移动或旋转,若不能,则停在原位,产生下一个方块。输出
5、方块函数:将生成的方块输出。消行函数:当方块满一行时,自动消行。判断游戏是否结束函数:当方块存在于最高一行时或用户按下ESC键,游戏结束。辅助功能:将用户的得分,等级,下一个即将掉落方块,最高分记录在主界面输出,以及播放背景音乐。72012年计算机实习报告2.2关键算法描述主界面显示:输入参数:无存储类型:void将游戏运行界面上下边界赋值为3,左右边界赋值为2,四个角赋值为4。运用textout函数,当边界值为3时,输出=,当边界值为2时,输出║,当边界值为4时,输出◆。运用textout函数,在主界面右侧输出
6、从上到下一次输出:暂停键,SCORE,LEVEL,NEXT,RECORD。本算法完成了游戏基本界面的显示。方块生成:输入参数:无存储类型:整型将7种不同形状的方块分别用4*4数组赋值:1,1,0,01,1,0,01,0,0,00,1,0,00,1,1,00,0,1,01,1,1,11,1,0,00,1,1,01,1,1,01,1,1,01,1,0,01,1,1,00,0,0,0,0,0,0,00,0,0,00,0,0,00,0,0,00,0,0,00,0,0,00,0,0,00,0,0,00,0,0,00,0,0
7、,00,0,0,00,0,0,00,0,0,00,0,0,0本算法完成了方块的赋值。旋转算法:输入参数:当前方块(即2维数组地址),方块宽w,高h,方块当前坐标x的地址,Y存储类型:void新建一个4*4数组b,并将新建数组值全赋值为0.从下到上扫描当前方块,若a[i][j]不等于0,则b[j][line]=a[i][j],(line为旋转后“1”所在的行数)。将新建数组的值赋给原方块,a[k][j]=b[k][j]。本算法完成了方块的旋转。判断方块是否能存在于下一个坐标:输入参数:当前方块(即2维数组地址),方
8、块在下一个位置的坐标x,y,方块宽w,高h。存储类型:BOOL。从上到下,从做到右扫描方块,若(map[i][j]&&a[w*(i-y)+j-x])为真,则返回0,否则返回1.消行算法:输入参数:map(主界面地址),i(行数),MAPW(主界面宽),MAPH(主界面高)存储类型:void72012年计算机实习报告在当前行输出…………………………。系统休眠100毫秒。清除