俄罗斯方块 C语言程序.docx

上传人:b****2 文档编号:11709936 上传时间:2023-06-02 格式:DOCX 页数:16 大小:16.56KB
下载 相关 举报
俄罗斯方块 C语言程序.docx_第1页
第1页 / 共16页
俄罗斯方块 C语言程序.docx_第2页
第2页 / 共16页
俄罗斯方块 C语言程序.docx_第3页
第3页 / 共16页
俄罗斯方块 C语言程序.docx_第4页
第4页 / 共16页
俄罗斯方块 C语言程序.docx_第5页
第5页 / 共16页
俄罗斯方块 C语言程序.docx_第6页
第6页 / 共16页
俄罗斯方块 C语言程序.docx_第7页
第7页 / 共16页
俄罗斯方块 C语言程序.docx_第8页
第8页 / 共16页
俄罗斯方块 C语言程序.docx_第9页
第9页 / 共16页
俄罗斯方块 C语言程序.docx_第10页
第10页 / 共16页
俄罗斯方块 C语言程序.docx_第11页
第11页 / 共16页
俄罗斯方块 C语言程序.docx_第12页
第12页 / 共16页
俄罗斯方块 C语言程序.docx_第13页
第13页 / 共16页
俄罗斯方块 C语言程序.docx_第14页
第14页 / 共16页
俄罗斯方块 C语言程序.docx_第15页
第15页 / 共16页
俄罗斯方块 C语言程序.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

俄罗斯方块 C语言程序.docx

《俄罗斯方块 C语言程序.docx》由会员分享,可在线阅读,更多相关《俄罗斯方块 C语言程序.docx(16页珍藏版)》请在冰点文库上搜索。

俄罗斯方块 C语言程序.docx

俄罗斯方块C语言程序

#include

#include

#include

#include

#include

#include

#include

#defineLEFT0x4b00

#defineRIGHT0x4d00

#defineDOWN0x5000

#defineUP0x4800

#defineESC0x011b

intBox_x[5],Box_y[5],Box_xy[15][10]={0},num,life=1,score,mx,my,key,x[5],y[5],size,grade=0;

int*buf;

voidInit();

voidmy_ad_1();

voidmy_ad_2();

voidmy_ad_3();

voidplay();

voidjiang();

voidDe_B_xy();

voidDraw_Box();

voidAd_Box_y();

voidMi_Box_x();

voidAd_Box_x();

voidch_B_xy();

voidrebuild();

voidDraw_New();

voidclose();

voiddelay_n(intn);

voidmain()

{

Init();

my_ad_1();

my_ad_2();

my_ad_3();

play();

close();

}

voidInit()

{

intdriver=DETECT,mode;

initgraph(&driver,&mode,"C:

\\ProgramFiles\\CYuYan\\bin");

mx=getmaxx();

my=getmaxy();

setbkcolor(BLUE);

size=imagesize(0,0,32,32);

if(size!

=-1)

buf=malloc(size);

getimage(0,0,32,32,buf);

}

voidmy_ad_1()

{intch1[]={100,120,100,300,120,300,120,200,200,200,200,280,180,280,180,300,220,300,220,180,120,180,120,140,300,140,300,100,280,120,100,120},

ch2[]={240,100,280,300,300,300,260,100,240,100},

ch3[]={280,160,264,280,284,280,300,160,280,160},

j1[]={300,120,340,160,360,160,320,100,300,120},

j2[]={300,180,340,220,360,220,320,160,300,180},

j3[]={300,300,340,300,380,220,360,220,300,300},

j4[]={380,120,380,140,420,140,420,280,360,280,360,300,500,300,500,280,440,280,440,140,480,140,480,120,380,120};

settextjustify(CENTER_TEXT,CENTER_TEXT);

settextstyle(TRIPLEX_FONT,HORIZ_DIR,5);

setcolor(WHITE);

sleep

(2);

outtextxy(320,200,"CProgramFlashCreation");

settextstyle(3,HORIZ_DIR,3);

sleep

(1);

outtextxy(320,300,"ChengJiang,ElectronicClass1,PhysicDepartment,GDUT");

sleep

(1);

cleardevice();

fillpoly(16,ch1);

fillpoly(5,ch2);

fillpoly(5,ch3);

fillpoly(5,j1);

fillpoly(5,j2);

fillpoly(5,j3);

fillpoly(12,j4);

sleep

(2);

cleardevice();

}

voidmy_ad_2()

{

setfillstyle(SOLID_FILL,LIGHTBLUE);

bar(0,0,150,my);

bar(450,0,mx,my);

setviewport(150,0,450,my,1);

}

voidmy_ad_3()

{

inti,j;

outtextxy(150,30,"Waitting...");

setlinestyle(1,1,1);

rectangle(0,60,450,90);

setlinestyle(SOLID_LINE,1,THICK_WIDTH);

jiang();

for(i=0;i<10;i++)

{

bar(30*i,60,30*(i+1),90);

rectangle(30*i,60,30*(i+1),90);

sleep

(1);

}

clearviewport();

outtextxy(150,240,"OK!

Press[Enter]");

getch();

clearviewport();

}

voidplay()

{

inti,j;

outtextxy(150,460,"grade:

0score:

0");

while

(1)

{

randomize();

num=random(19);

De_B_xy();

while

(1)

{

while(kbhit())

{

key=bioskey(0);

Draw_Box();

switch(key)

{

caseUP:

getch();break;

caseDOWN:

Ad_Box_y();break;

caseRIGHT:

Ad_Box_x();break;

caseLEFT:

Mi_Box_x();break;

caseESC:

close();break;

default:

ch_B_xy();break;

}

if(check())break;

}

Draw_Box();

if(check())break;

for(i=1;i<5;i++)

Box_y[i]+=1;

if(!

kbhit())

delay_n(10-grade);

}

rebuild();

Draw_New();

if(!

life)break;

}

}

voidDraw_Box()

{

inti;

for(i=1;i<5;i++)

putimage(x[i]*30-1,30*y[i]-1,buf,COPY_PUT);

if(!

(y[1]&&y[2]&&y[3]&&y[0]))

for(i=4;i<8;i++)

putimage(30*i-1,0,buf,COPY_PUT);

for(i=1;i<5;i++)

{

x[i]=Box_x[i];

y[i]=Box_y[i];

bar(Box_x[i]*30,Box_y[i]*30,(Box_x[i]+1)*30,(Box_y[i]+1)*30);

rectangle(Box_x[i]*30,Box_y[i]*30,(Box_x[i]+1)*30,(Box_y[i]+1)*30);

}

}

voidDe_B_xy()

{

inti;

switch(num)

{

case0:

{Box_x[1]=Box_x[2]=Box_x[3]=Box_x[4]=0;Box_y[1]=0;Box_y[2]=1;Box_y[3]=2;Box_y[4]=3;}break;

case1:

{Box_y[1]=Box_y[2]=Box_y[3]=Box_y[4]=0;Box_x[1]=0;Box_x[2]=1;Box_x[3]=2;Box_x[4]=3;}break;

case2:

{Box_x[1]=0;Box_x[2]=1;Box_x[3]=0;Box_x[4]=1;Box_y[1]=0;Box_y[2]=0;Box_y[3]=1;Box_y[4]=1;}break;

case3:

{Box_x[1]=0;Box_x[2]=0;Box_x[3]=0;Box_x[4]=1;Box_y[1]=0;Box_y[2]=1;Box_y[3]=2;Box_y[4]=1;}break;

case4:

{Box_x[1]=0;Box_x[2]=1;Box_x[3]=1;Box_x[4]=2;Box_y[1]=2;Box_y[2]=1;Box_y[3]=2;Box_y[4]=2;}break;

case5:

{Box_x[1]=0;Box_x[2]=1;Box_x[3]=1;Box_x[4]=1;Box_y[1]=1;Box_y[2]=0;Box_y[3]=1;Box_y[4]=2;}break;

case6:

{Box_x[1]=0;Box_x[2]=1;Box_x[3]=1;Box_x[4]=2;Box_y[1]=1;Box_y[2]=1;Box_y[3]=2;Box_y[4]=1;}break;

case7:

{Box_x[1]=0;Box_x[2]=0;Box_x[3]=1;Box_x[4]=1;Box_y[1]=0;Box_y[2]=1;Box_y[3]=1;Box_y[4]=2;}break;

case8:

{Box_x[1]=0;Box_x[2]=1;Box_x[3]=1;Box_x[4]=2;Box_y[1]=1;Box_y[2]=0;Box_y[3]=1;Box_y[4]=0;}break;

case9:

{Box_x[1]=0;Box_x[2]=0;Box_x[3]=1;Box_x[4]=1;Box_y[1]=1;Box_y[2]=2;Box_y[3]=0;Box_y[4]=1;}break;

case10:

{Box_x[1]=0;Box_x[2]=1;Box_x[3]=1;Box_x[4]=2;Box_y[1]=1;Box_y[2]=1;Box_y[3]=2;Box_y[4]=2;}break;

case11:

{Box_x[1]=0;Box_x[2]=0;Box_x[3]=0;Box_x[4]=1;Box_y[1]=0;Box_y[2]=1;Box_y[3]=2;Box_y[4]=2;}break;

case12:

{Box_x[1]=0;Box_x[2]=1;Box_x[3]=2;Box_x[4]=2;Box_y[1]=1;Box_y[2]=1;Box_y[3]=0;Box_y[4]=1;}break;

case13:

{Box_x[1]=0;Box_x[2]=1;Box_x[3]=1;Box_x[4]=1;Box_y[1]=0;Box_y[2]=0;Box_y[3]=1;Box_y[4]=2;}break;

case14:

{Box_x[1]=0;Box_x[2]=0;Box_x[3]=1;Box_x[4]=2;Box_y[1]=0;Box_y[2]=1;Box_y[3]=0;Box_y[4]=0;}break;

case15:

{Box_x[1]=0;Box_x[2]=1;Box_x[3]=1;Box_x[4]=1;Box_y[1]=2;Box_y[2]=0;Box_y[3]=1;Box_y[4]=2;}break;

case16:

{Box_x[1]=0;Box_x[2]=1;Box_x[3]=2;Box_x[4]=2;Box_y[1]=0;Box_y[2]=0;Box_y[3]=0;Box_y[4]=1;}break;

case17:

{Box_x[1]=0;Box_x[2]=0;Box_x[3]=0;Box_x[4]=1;Box_y[1]=0;Box_y[2]=1;Box_y[3]=2;Box_y[4]=0;}break;

case18:

{Box_x[1]=0;Box_x[2]=0;Box_x[3]=1;Box_x[4]=2;Box_y[1]=0;Box_y[2]=1;Box_y[3]=1;Box_y[4]=1;}break;

}

for(i=1;i<5;i++)

Box_x[i]+=4;

}

intcheck()

{

inti,p=0;

for(i=1;i<5;i++)

if(Box_xy[Box_y[i]+1][Box_x[i]]||Box_y[i]>13)

p=1;

return(p);

}

voidAd_Box_y()

{

inti,p=1;

for(i=1;i<5;i++)

if(Box_xy[Box_y[i]+1][Box_x[i]]||Box_y[i]>13)

p=0;

if(p)

for(i=1;i<5;i++)

Box_y[i]+=1;

}

voidAd_Box_x()

{

inti,p=1;

for(i=1;i<5;i++)

if(Box_xy[Box_y[i]][Box_x[i]+1]||Box_x[i]>8)

p=0;

if(p)

for(i=1;i<5;i++)

Box_x[i]+=1;

}

voidMi_Box_x()

{

inti,p=1;

for(i=1;i<5;i++)

if(Box_xy[Box_y[i]][Box_x[i]-1]||Box_x[i]<1)

p=0;

if(p)

for(i=1;i<5;i++)

Box_x[i]-=1;

}

voidch_B_xy()

{

inti,j,t,maxx=Box_x[1],maxy=Box_y[1];

for(i=2;i<5;i++)

{

if(maxx

maxx=Box_x[i];

if(maxy

maxy=Box_y[i];

}

switch(num)

{

case0:

num=num+1;break;

case1:

num=num-1;

case2:

;break;

case3:

num=num+1;break;

case4:

num=num+1;break;

case5:

num=num+1;break;

case6:

num=num-3;break;

case7:

num=num+1;break;

case8:

num=num-1;break;

case9:

num=num+1;break;

case10:

num=num-1;break;

case11:

num=num+1;break;

case12:

num=num+1;break;

case13:

num=num+1;break;

case14:

num=num-3;break;

case15:

num=num+1;break;

case16:

num=num+1;break;

case17:

num=num+1;break;

case18:

num=num-3;break;

}

De_B_xy();

for(i=1;i<5;i++)

{

Box_x[i]=Box_x[i]+maxx-Box_x[4];

Box_y[i]=Box_y[i]+maxy-2;

}

}

voidrebuild()

{

inti,j,p,t[4]={0},k=0;

for(i=1;i<5;i++)

Box_xy[Box_y[i]][Box_x[i]]=1;

for(i=0;i<15;i++)

{

p=1;

for(j=0;j<10;j++)

if(!

Box_xy[i][j])

p=0;

if(p)

{

t[k]=i;

k++;

score+=10*k;

}

}

for(k=0;k<4;k++)

{

if(t[k])

{

for(i=t[k];i>0;i--)

for(j=0;j<10;j++)

Box_xy[i][j]=Box_xy[i-1][j];

}

}

for(i=0;i<10;i++)

if(Box_xy[0][i])

life=0;

setfillstyle(1,4);

for(i=0;i<4;i++)

if(t[i])

bar(0,30*t[i],300,30*(t[i]+1));

setfillstyle(1,9);

for(i=1;i<5;i++)

{

x[i]=0;

y[i]=0;

}

grade=(score-score%100)/100;

delay(30000);

}

voidDraw_New()

{

inti,j;

chartext[20];

clearviewport();

for(i=0;i<15;i++)

for(j=0;j<10;j++)

if(Box_xy[i][j])

{

bar(30*j,30*i,30*j+30,30*i+30);

rectangle(30*j,30*i,30*j+30,30*i+30);

}

sprintf(text,"grade:

%dscore:

%d",grade,score);

gotoxy(100,460);

outtextxy(150,460,text);

}

voidclose()

{

inti,j;

for(i=14;i>=0;i--)

{

for(j=0;j<10;j++)

{

bar(30*j,30*i,30*(j+1),30*(i+1));

rectangle(30*j,30*i,30*(j+1),30*(i+1));

}

delay(20000);

}

clearviewport();

jiang();

outtextxy(150,60,"gameover");

getch();

closegraph();

}

voiddelay_n(intn)

{

inti;

for(i=0;i

}

voidjiang()

{

intjx=0,jy=4;

for(jx=0;jx<3;jx++)

{

bar(30*jx,30*jy,30*(jx+1),30*(jy+1));

rectangle(30*jx,30*jy,30*(jx+1),30*(jy+1));

bar(30*jx,30*(jy+3),30*(jx+1),30*(jy+4));

rectangle(30*jx,30*(jy+3),30*(jx+1),30*(jy+4));

jy++;

}

jy=14;

for(jx=0;jx<4;jx++)

{

bar(30*jx,30*jy,30*(jx+1),30*(jy+1));

rectangle(30*jx,30*jy,30*(jx+1),30*(jy+1));

jy--;

}

jy=4;

for(jx=4;jx<9;jx++)

{

bar(30*jx,30*jy,30*(jx+1),30*(jy+1));

rectangle(30*jx,30*jy,30*(jx+1),30*(jy+1));

}

jy=14;

for(jx=3;jx<11;jx++)

{

bar(30*jx,30*jy,30*(jx+1),30*(jy+1));

rectangle(30*jx,30*jy,30*(jx+1),30*(jy+1));

}

jx=6;

for(jy=5;jy<15;jy++)

{

bar(30*jx,30*jy,30*(jx+1),30*(jy+1));

rectangle(30*jx,30*jy,30*(jx+1),30*(jy+1));

}

}

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2