1 / 36
文档名称:

Win-TC俄罗斯方块游戏.doc

格式:doc   大小:112KB   页数:36页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Win-TC俄罗斯方块游戏.doc

上传人:花开一叶 2019/5/30 文件大小:112 KB

下载得到文件列表

Win-TC俄罗斯方块游戏.doc

文档介绍

文档介绍:芁Win-TC()俄罗斯方块游戏袀俄罗斯方块是一个经典的游戏,很多人都玩过,也有很多人用C语言编写过这个游戏。要成功编写好它,首先要了解俄罗斯方块共有几种形状以及每形状又有几种表现形态。俄罗斯方块共有7种形状,如下所示:芅薃口2、口口3、口4、口5、口羃口口口口口口口口口口薈口口口虿口6、口口7、口口羄口口莁口口蚁由上1至7种形状可看出它们有一个基本共同点,它们占有的空间位置是一样的,都是由4个小方块组成。根据此共性可用编号的方法来表示每一种形状的方块在空间上的位置,如下图所示:(用0~3号小方块表示一种形状)蝿X:0123莅0膃3莀衿螆1薁腿蒇蒁2袁蒆薆袂艿葿薆芃羁Y:0芈1蚆2蚄3葿肇图1、方块编号图示螆由图1可清楚看到:0号至2号方块位于X轴的第0列,位于Y轴分别为0行、1行、2行,3号方块位于X轴第1列,位于Y轴第0行。在程序中可用一个8位数组表示这个形状的数据,前4位表示X轴坐标的列数,后4位为Y轴坐标的行数。如:intfk70[8]={0,0,0,1,0,1,2,0};螁因为俄罗斯方块游戏的缓存区就是用一个二维数组表示的,用上方法描述方块的空间位置,正好对应上缓存数组。如在缓存数组的第3行第5列输出图1的形状方块,只要把表示图形的列行数据加上输出位置的列行数,就能正确的在游戏区域输出图1的方块。膀俄罗斯方块共有19种表现形态分别为:1有2种,2只有一种,3有4种,4和5各有2种,螆6和7各有4种。袆第二要了解方块在游戏中运动方向或形态发生改变时的描述。接触面:膁123蚈0袈1羆3薂莀0薇肆0羃1螈2莆膆2莄蒀葿1膅蒁节膈3芅袂蚀羇莅2莃莂螆蒅螄衿蝿薅袀3节膈芅袂蚀羇上图形状1、2、3在自由下落时的接触面为橘黄小方块的底面,在左右移动时又各不相同。莅2号形状在左右移动时都是0至3号小方块,只分左右两个侧面。芃1号形状在左移时为0和2号的左边面,在右移时为2和3号的右边面。莂3号形状左为0和3,右为2和3。羀三消行的描述:检测游戏缓存区的每一行中的各列是否都已存了小方块,是消除此行方块,清空该行的缓存区,然后把上一行的方块下移一行存入相应的缓存区,再把原来的缓存区清空。程序描述用递归函数实现。蒅四判断游戏结束描述:游戏区域没有足够的空间容纳将要输出的方块时结束游戏并退出。蚄五程序执行间隔时间(时钟即方块移动速度)描述:本程序用delay()函数功能使程序暂停执行一段时间(毫秒)实现。袀作为一个C语言学****游戏编程案例,现在用WIN-TC纯C语言编译游戏过程,其功能如下:游戏开始后,游戏区域上方不断出现预定义好的方块形状下坠物,方块坠物可通过小键盘方向键(↑)旋转改变它的形态,向左移动(←),向右移动(→),加快下坠速度(空格键),并且不断地往下坠,直到它接触到游戏区域底部或其它之前已经累叠起的下坠方块。当下坠方块停止下坠后,它的位置矢量确定下来并占有该区域的缓存空间。当游戏区域的某一行缓存空间全部被占满后,则清除该行的所有方块,上面的方块向下移动一行占有该行的缓存空间,同时稀放原来的缓存空间。当新的下坠方块没有缓存空间出现在游戏区域时,游戏结束。蝿游戏难易分三等级:初、中、高,分数在0到5000为初级,5000分以上为中级,10000以上为高级。级别越高,方块的下落速度越快。薅膅薁薈蚅芁聿芆螅蚂螁荿螅肃腿肈袄蒄袁袇羄袅荿图1、游戏界面图2、游戏中(中级)袀肄游戏程序源如下:羂#include<>肁#include<>虿#include<>膄#include<>莃#defineESC0x001b螃#defineLEFT0x4b00羆#defineRIGHT0x4d00螂#defineUP0x4800莂#defineSPACE32蝿#defineFKSIZE15/*方块大小*/螅#defineGFKSIZE(FKSIZE+2)/*方块列距大小*/袂#definePSIZE11螃#definePSIZE2(GFKSIZE+1)蒀#definePSIZE3(2*GFKSIZE+1)螈#definePSIZE4(3*GFKSIZE+1)羂#defineWTOP50/*游戏区域Y坐标起始值*/衿#defineWLEFT180/*游戏区域X坐标起始值*/羈#defineROW15/*游戏区最大行数据*/薆#defineCOLUNM10/*游戏区最大列数据*/肂/*方块矢量位置(4个)*/芀intbegin0[4]={PSIZE1,PSIZE2,PSIZE3,PSIZE4};蚀intGFKColor[7]={2,3,12,5,6,10,11};/*方块颜色列表*/芅/*莆方块形状共7种蚁方块坠落形态共19种(用如下方式表示)膈1:莈fk10[]“口”(x:位于列号[0,0