C++俄罗斯方块实验报告(附实验体会)Word格式.doc

上传人:b****1 文档编号:13064058 上传时间:2022-10-04 格式:DOC 页数:18 大小:506.50KB
下载 相关 举报
C++俄罗斯方块实验报告(附实验体会)Word格式.doc_第1页
第1页 / 共18页
C++俄罗斯方块实验报告(附实验体会)Word格式.doc_第2页
第2页 / 共18页
C++俄罗斯方块实验报告(附实验体会)Word格式.doc_第3页
第3页 / 共18页
C++俄罗斯方块实验报告(附实验体会)Word格式.doc_第4页
第4页 / 共18页
C++俄罗斯方块实验报告(附实验体会)Word格式.doc_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C++俄罗斯方块实验报告(附实验体会)Word格式.doc

《C++俄罗斯方块实验报告(附实验体会)Word格式.doc》由会员分享,可在线阅读,更多相关《C++俄罗斯方块实验报告(附实验体会)Word格式.doc(18页珍藏版)》请在冰豆网上搜索。

C++俄罗斯方块实验报告(附实验体会)Word格式.doc

(2)由方向键控制游戏:

上键控制方块变形、下键控制方块下移并判断是否有消行、左键控制方块左移、右键控制方块右移;

(3)游戏积分:

一次性消的行数越多加的分数越多,当消行每超过30行自动提高一个游戏等级。

2、总体设计:

(1)用数组存放方块

(2)输出地图

(3)在地图里面输出方块

(4)开始游戏

(5)方块的旋转

(6)方块是否能下落

(7)判断方块是否能下落

(8)提示下一个即将下落的方块

(9)控制方块的下落速度

(10)分成10等级,等级越高方块下落得更快

(11)消行处理

(12)游戏结束

3、详细设计设计说明:

本程序运行代码如下:

#include<

conio.h>

stdlib.h>

windows.h>

#include"

colorConsole.h"

#defineSQUARE_COLORFOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_INTENSITY//方块的颜色

#defineup72

#definedown80

#defineleft75

#defineright77

#defineesc27

#defineMAPW12//地图的宽度

#defineMAPH20//地图的高度

BOOLisavailable(inta[],intx,inty,intw,inth);

//判定是否能放下

voidturn(inta[][4],intw,inth,int*x,inty);

//转动

int*create();

//创建方块

voidinit();

//初始化工作

voiddrawblocks(inta[],intw,inth,intx,inty,WORDwColors[],intnColors);

voidclearcache();

//清除键盘缓冲区

voidend();

voidclearsquare(int*a,intw,inth,intx,inty);

voidgameover();

voiddeletemap(intm[][MAPW],introw,intw,inth);

//消除一行

intdx=30,dy=5;

//屏幕上的偏移量

intscore=0,level=0;

intmap[MAPH][MAPW];

inta1[4][4]={{1},{1,1,1}};

inta2[4][4]={{0,1},{1,1,1}};

inta3[4][4]={{1,1},{0,1,1}};

inta4[4][4]={{0,0,1},{1,1,1}};

inta5[4][4]={{0,1,1},{1,1}};

inta6[4][4]={{1,1,1,1}};

inta7[4][4]={{1,1},{1,1}};

inta[4][4];

intmain()

{

init();

int*b=NULL;

b=create();

//预创建方块

intq=0;

intsign,blank,x,y;

while

(1)

{

for(inti=0;

i<

4;

i++)//复制方块

for(intj=0;

j<

j++)

if(a[i][j]=*(b+i*4+j))blank=i;

y=1-blank;

x=4;

clearsquare(&

a[0][0],4,4,13,13);

b=create();

HANDLEhandle;

handle=initiate();

WORDwColors[1]={FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_INTENSITY};

drawblocks(b,4,4,13,13,wColors,1);

wColors[0]=SQUARE_COLOR;

drawblocks(&

a[0][0],4,4,x,y,wColors,1);

clearcache();

charstring[5];

wColors[0]=FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_INTENSITY;

textout(handle,26+dx,5+dy,wColors,1,itoa(score,string,10));

textout(handle,26+dx,9+dy,wColors,1,itoa(level,string,10));

sign=1;

while(sign)

{

intdelay=0,max_delay=100-10*level;

//延迟量

while(delay<

max_delay)

{

if(_kbhit())//用if避免按住键使方块卡住

{

intdraw=0;

intkey=_getch();

switch(key)

{

caseup:

clearsquare(&

a[0][0],4,4,x,y);

turn(a,4,4,&

x,y);

draw=1;

break;

casedown:

delay=max_delay;

caseleft:

if(isavailable(&

a[0][0],x-1,y,4,4))

{

clearsquare(&

x--;

draw=1;

}

caseright:

a[0][0],x+1,y,4,4))

x++;

}

caseesc:

end();

}

if(draw)

HANDLEhandle;

handle=initiate();

WORDwColors[1]={SQUARE_COLOR};

drawblocks(&

draw=0;

}

_sleep(8);

delay++;

}

if(isavailable(&

a[0][0],x,y+1,4,4))//判断是否能下移

clearsquare(&

y++;

HANDLEhandle;

handle=initiate();

WORDwColors[1]={SQUARE_COLOR};

drawblocks(&

else

sign=0;

//标记,使跳出while(sign)循环,产生新方块

if(y<

=1)gameover();

//是否结束

for(inti=0;

i++)//放下方块

for(intj=0;

if(a[i][j]&

&

((i+y)<

MAPH-1)&

((j+x)<

MAPW-1))

map[i+y][j+x]=a[i][j];

intfull,k=0;

for(i=y;

min(y+4,MAPH-1);

i++)

full=1;

for(intj=1;

11;

if(!

map[i][j])full=0;

if(full)//消掉一行

deletemap(map,i,MAPW,MAPH);

k++;

q++;

score=score+k;

level=min(q/30,9);

}

}

returnEXIT_SUCCESS;

}

BOOLisavailable(inta[],intx,inty,intw,inth)

for(inti=max(y,1);

y+h;

for(intj=x;

x+w;

if(map[i][j]&

a[w*(i-y)+j-x])

return0;

return1;

int*create()

int*a=NULL;

intc=rand()%7;

switch(c)

case0:

a=&

a1[0][0];

break;

case1:

a2[0][0];

case2:

a3[0][0];

case3:

a4[0][0];

case4:

a5[0][0];

case5:

a6[0][0];

case6:

a7[0][0];

returna;

voidinit() //初始化工作

for(inti=0;

20;

map[i][0]=-2;

map[i][11]=-2;

for(i=0;

12;

map[0][i]=-1;

map[19][i]=-1;

map[0][0]=-3;

map[0][11]=-3;

map[19][0]=-3;

map[19][11]=-3;

HANDLEhandle;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 环境科学食品科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1