c++语言实现俄罗斯方块经典游戏课程设计

c++语言实现俄罗斯方块经典游戏课程设计

ID:10828350

大小:192.85 KB

页数:11页

时间:2018-07-08

c++语言实现俄罗斯方块经典游戏课程设计_第1页
c++语言实现俄罗斯方块经典游戏课程设计_第2页
c++语言实现俄罗斯方块经典游戏课程设计_第3页
c++语言实现俄罗斯方块经典游戏课程设计_第4页
c++语言实现俄罗斯方块经典游戏课程设计_第5页
资源描述:

《c++语言实现俄罗斯方块经典游戏课程设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、2012年计算机实习报告计算机实习报告2012年计算机实习报告一.功能说明1.1总体功能说明本工程用C++语言实现了俄罗斯方块经典游戏。俄罗斯方块游戏特点:俄罗斯方块的基本规则是通过键盘控制移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分,上手简单,是一款经典游戏。在经典玩法(正常模式)的基础上,本程序还添加了挑战模式,即在游戏伊始时在游戏区域中随机分布方块,减小了留给玩家调整方块的时间和区域,需要通过玩家不断填补消行才能把游戏进行下去。游戏会随着玩家的得分的增多而加大方块下落的速度,从而增加游戏难度,因

2、此也在原来的基础上大大增加了游戏的可玩性。游戏中还增加了Esc键的功能,从而可以实现暂停游戏和退出游戏的功能。1.2用户界面这是游戏的初始界面。出现游戏名,根据提示,玩家按下“c”“n”即可自行选择挑战模式和正常模式,难度不同。这样既明确了游戏名称,提供两种模式的入口,又给玩家一个准备的时间以自行控制游戏开始,不必一打开文件就突然开始游戏,增加了游戏的人性化。2012年计算机实习报告以上两图为进入游戏后的主界面,分别为正常模式和挑战模式。中间的区域为游戏主要界面,游戏从上往下随机产生并自动输出七种方块,对俄罗斯方块的基本操作如←(左移

3、),→(右移),↑(方块变形),↓(加速下落)都在此区域里完成。最上方显示的是模式。右边的区域显示一些与游戏相关的信息,从上往下分别是下落速度、游戏得分、游戏操作说明,编者信息。2012年计算机实习报告此图为按下“Esc”键后出现的画面。程序支持Esc键暂停的功能,即按下后,按Y键退出,按N键可继续游戏,玩家中途有事离开,回来后也可继续游戏,提供了方便。1.3使用方法打开程序后根据屏幕上的提示信息,按下回车键以进入游戏界面开始游戏。进入游戏界面后,根据屏幕右下方的游戏说明,通过键盘上←(左移),→(右移),↑(方块变形),↓(加速下落

4、)控制方块。游戏过程中,可按“Esc”键暂停,并可以通过“Y”和“C”键选择退出和继续。游戏结束之后,通过键盘按键“Y”和“N”选择是否退出游戏。←,→,↑,↓:左移,右移,翻转和加速下落。Esc:暂停/继续/退出游戏难度配置是随着分数的增加而提高的。二.程序设计说明2.1总体设计框架程序以main函数为主线,在main函数中调用其他函数,具体算法主要在其他函数中实现,使程序更加简洁明了,清晰而有层次。除main函数外,还有Start,Begin,Block_birth,Print,Clear,Turn,Intomap,Availab

5、le,Deleteline,Gameover十个实现算法的函数,分别用来实现初始界面,初始游戏,生成方块,打印方块,擦除方块,旋转方块,更改地图矩阵,判断是否放下,消行,游戏结束的功能。2012年计算机实习报告框架图如下:开始显示控制台窗口(游戏初始界面)选择游戏模式点按y进入挑战模式点按n进入正常模式设置界面,生成已累积方块随机产生方块判断对方块的操作Y判断是否下移N判断能否放下NY判断是否满行NY消行游戏结束判断是否退出NY2012年计算机实习报告退出程序2.2关键算法描述本工程主要采用了数组来存储矩阵,用三维数组(block_s

6、hape[7][4][4])存储了最基本的7种俄罗斯方块,而在具体操作中则通过对另外两个新定义的二维数组当前方块(tshape[4][4])与新方块(newshape[4][4])来实现各种操作与判断。打印函数Print()和擦除函数Clear()可实现方块的移动。判断函数Available()进行方块满行和叠加的判断,主要是通过定义了一个二维的地图矩阵map_shape[24][46],在有方块的地方值为1,无则为0,对于“■”字符横坐标占两个的问题,统一取其左边第一个位置为1进行各种判断操作。关键算法1:算法功能:在主程序中接收键

7、盘传来的信息,并对所要操纵的方块做相应的操作(翻转,左移,右移,下落),包括Esc键控制的暂停/继续/退出游戏。voidTurn(intblock_shape[4][4])//操作方块{intdirection=_getch();switch(direction){case72://up方块翻转for(intk=0;k<4;k++){for(intj=0;j<4;j++){block_newshape[3-j][k]=block_shape[k][j];}}if(Available(block_newshape,0,0)){Clear

8、(block_tshape);Print(block_newshape);for(intk=0;k<4;k++)for(intj=0;j<4;j++){block_tshape[k][j]=block_newshape[

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。