C 语言编写的《推箱子》游戏.docx

上传人:b****6 文档编号:7613361 上传时间:2023-01-25 格式:DOCX 页数:22 大小:17.92KB
下载 相关 举报
C 语言编写的《推箱子》游戏.docx_第1页
第1页 / 共22页
C 语言编写的《推箱子》游戏.docx_第2页
第2页 / 共22页
C 语言编写的《推箱子》游戏.docx_第3页
第3页 / 共22页
C 语言编写的《推箱子》游戏.docx_第4页
第4页 / 共22页
C 语言编写的《推箱子》游戏.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C 语言编写的《推箱子》游戏.docx

《C 语言编写的《推箱子》游戏.docx》由会员分享,可在线阅读,更多相关《C 语言编写的《推箱子》游戏.docx(22页珍藏版)》请在冰豆网上搜索。

C 语言编写的《推箱子》游戏.docx

C语言编写的《推箱子》游戏

C语言编写的《推箱子》游戏.txt爱尔兰﹌一个不离婚的国家,一个一百年的约定。

难过了,不要告诉别人,因为别人不在乎。

★真话假话都要猜,这就是现在的社会。

C语言编写的《推箱子》游戏

看到别人用C编出了《俄罗斯方块》,心想:

简直不可思意。

心里满是佩服,跟本没想到C还能有这么搞法,心里非常兴奋,我这个人就是爱编些小东西(大东西编不来),感觉有意思的都总想动手搞搞,以前用VB做过《推箱子》游戏,用C还没做过,当时也觉得用C不可能,觉得要是能那是太难了,现在看了别人用C对图形的处理,慢慢觉得《推箱子》游戏自己可以把它写出来,于是就开始编写《推箱子》游戏(自觉得伟大的工程),今天写完,心里非常兴奋,迫不及待的就往论坛里发,想炫耀一下,满足下虚荣心,唉!

我这人就是这样,虚荣的很。

大家支持一下,有夸奖才有动力。

呵呵!

·

·

·

程序在TC2.0、Win-TC下测试通过。

程序代码:

#include

#include

#include

#include

#include

#defineSIZE20

#defineKEY_UP0x4800

#defineKEY_DOWN0x5000

#defineKEY_LEFT0x4b00

#defineKEY_RIGHT0x4d00

#defineKEY_ESC0x011b

#defineRe0x1372

intStep=0,right_Step,top_Step;

voidcheshi(inta[][6],intn,intm)

{

inti,j;

for(i=0;i

{

for(j=0;j

printf("%d",a[i][j]);

printf("\n");

}

}

voidColoring(intx,inty,intsubscript)

{

switch(subscript)

{

case0:

{

setfillstyle(1,DARKGRAY);

break;

}

case1:

{

setfillstyle(6,YELLOW);

break;

}

case2:

{

setfillstyle(8,DARKGRAY);

break;

}

case3:

{

setfillstyle(1,CYAN);

break;

}

case4:

{

setfillstyle(1,RED);

break;

}

case5:

{

setfillstyle(1,CYAN);

break;

}

case6:

{

setfillstyle(1,RED);

break;

}

}

bar(x,y,x+SIZE,y+SIZE);

}

voiddisplay(intguan[][6],intimax,intjmax)

{

intgdriver=DETECT,gmode,errorcode;

intleft,top,right,bottom,x,y;

inti,j;

initgraph(&gdriver,&gmode,"");

errorcode=graphresult();

if(errorcode!

=grOk)

{

printf("Graphicserror:

%s\n",grapherrormsg(errorcode));

printf("Pressanykeytohalt:

");

getch();

exit

(1);

}

left=getmaxx()/2-jmax*SIZE+jmax*2+2;

top=getmaxy()/2-((imax/2*SIZE)+(imax/2+4));

right=left+jmax*SIZE+jmax*2+2;

bottom=getmaxy()/2+(((imax-imax/2)*SIZE)+((imax-imax/2)+4));

right_Step=right;

top_Step=top;

rectangle(left,top,right,bottom);

 

for(i=0;i

{

for(j=0;j

{

x=left+(j+1)*2+j*SIZE;

y=top+(i+1)*2+i*SIZE;

Coloring(x,y,guan[i][j]);

}

}

setcolor(YELLOW);

outtextxy(left,top-20,"UserYuH:

BOX");

setcolor(WHITE);

outtextxy(right+10,top,"Guan:

");

outtextxy(right+10,top+20,"Step:

");

rectangle(left,bottom+4,left+82,bottom+20);

settextjustify(LEFT_TEXT,TOP_TEXT);

outtextxy(left+4,bottom+8,"R:

refresh");

rectangle(left+86,bottom+4,left+162,bottom+20);

settextjustify(LEFT_TEXT,TOP_TEXT);

outtextxy(left+92,bottom+8,"Esc:

exit");

}

voidCopyGuan(intguan[][6],intguan_all[][6],intimax,intjmax)

{

inti,j;

for(i=0;i

for(j=0;j

guan[i][j]=guan_all[i][j];

}

voidselect_guan(intguan_all[][6],intguan[][6],intsubi_j[],intijmax[],intguan_num,int*fulfil)

{

inti,j;

switch(guan_num)

{

case1:

{

*fulfil=2;

subi_j[0]=2,subi_j[1]=0;

ijmax[0]=6,ijmax[1]=4;

CopyGuan(guan,guan_all,ijmax[0],ijmax[1]);

break;

}

case2:

{

*fulfil=2;

subi_j[0]=2,subi_j[1]=0;

ijmax[0]=5,ijmax[1]=5;

CopyGuan(guan,guan_all,ijmax[0],ijmax[1]);

break;

}

case3:

{

*fulfil=1;

subi_j[0]=3,subi_j[1]=3;

ijmax[0]=6,ijmax[1]=6;

break;

}

case4:

{

*fulfil=0;

subi_j[0]=1,subi_j[1]=1;

ijmax[0]=6,ijmax[1]=6;

break;

}

case5:

{

*fulfil=0;

subi_j[0]=4,subi_j[1]=2;

ijmax[0]=5,ijmax[1]=6;

break;

}

case6:

{

*fulfil=1;

subi_j[0]=0,subi_j[1]=4;

ijmax[0]=6,ijmax[1]=5;

break;

}

case7:

{

*fulfil=0;

subi_j[0]=2,subi_j[1]=4;

ijmax[0]=6,ijmax[1]=5;

break;

}

case8:

{

*fulfil=0;

subi_j[0]=0,subi_j[1]=4;

ijmax[0]=6,ijmax[1]=6;

break;

}

case9:

{

*fulfil=0;

subi_j[0]=3,subi_j[1]=1;

ijmax[0]=4,ijmax[1]=6;

break;

}

case10:

{

*fulfil=1;

subi_j[0]=3,subi_j[1]=3;

ijmax[0]=6,ijmax[1]=5;

break;

}

case11:

{

*fulfil=1;

subi_j[0]=4,subi_j[1]=1;

ijmax[0]=6,ijmax[1]=5;

break;

}

case12:

{

*fulfil=0;

subi_j[0]=0,subi_j[1]=2;

ijmax[0]=5,ijmax[1]=6;

break;

}

case13:

{

*fulfil=1;

subi_j[0]=2,subi_j[1]=3;

ijmax[0]=6,ijmax[1]=5;

break;

}

case14:

{

*fulfil=0;

subi_j[0]=3,subi_j[1]=0;

ijmax[0]=5,ijmax[1]=6;

break;

}

case15:

{

*fulfil=1;

subi_j[0]=0,subi_j[1]=3;

ijmax[0]=6,ijmax[1]=6;

break;

}

case16:

{

*fulfil=0;

subi_j[0]=0,subi_j[1]=3;

ijmax[0]=5,ijmax[1]=5;

break;

}

case17:

{

*fulfil=0;

subi_j[0]=3,subi_j[1]=5;

ijmax[0]=4,ijmax[1]=6;

break;

}

case18:

{

*fulfil=1;

subi_j[0]=0,subi_j[1]=1;

ijmax[0]=6,ijmax[1]=6;

break;

}

case19:

{

*fulfil=0;

subi_j[0]=5,subi_j[1]=4;

ijmax[0]=6,ijmax[1]=6;

break;

}

case20:

{

*fulfil=2;

subi_j[0]=1,subi_j[1]=4;

ijmax[0]=5,ijmax[1]=6;

break;

}

}

CopyGuan(guan,guan_all,ijmax[0],ijmax[1]);

}

voidEixt()

{

exit(0);

}

voidMove(intpoint,intguan[][6],intsubi_j[],intimax,intjmax,int*fulfil)

{

inti,j,*ir,*jr,left,top;

left=getmaxx()/2-jmax*SIZE+jmax*2+2;

top=getmaxy()/2-((imax/2*SIZE)+(imax/2+4));

ir=&subi_j[0],jr=&subi_j[1];

i=*ir,j=*jr;

switch(point)

{

case1:

{

if(i>0)i--;

elsebreak;

if(guan[i][j]==0)

{

if(guan[*ir][j]==6)

{

guan[i][j]=4;

guan[*ir][j]=2;

}

else

{

guan[*ir][j]=0;

guan[i][j]=4;

}

Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guan[i][j]);

Coloring(left+(j+1)*2+j*SIZE,top+(*ir+1)*2+*ir*SIZE,guan[*ir][j]);

*ir=i;

Step++;

}

elseif(guan[i][j]==3)

{

if(i>0&&(guan[i-1][j]==0||guan[i-1][j]==2))

{

if(guan[i-1][j]==0)

guan[i-1][j]=3;

else

{

guan[i-1][j]=5;

(*fulfil)++;

}

guan[i][j]=0;

Coloring(left+(j+1)*2+j*SIZE,top+((i-1)+1)*2+(i-1)*SIZE,guan[i-1][j]);

Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guan[i][j]);

Step++;

}

}

elseif(guan[i][j]==5)

{

if(i>0&&(guan[i-1][j]==0||guan[i-1][j]==2))

{

if(guan[i-1][j]==0)

guan[i-1][j]=3;

else

{

guan[i-1][j]=5;

(*fulfil)++;

}

guan[i][j]=2;

Coloring(left+(j+1)*2+j*SIZE,top+((i-1)+1)*2+(i-1)*SIZE,guan[i-1][j]);

Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guan[i][j]);

Step++;

(*fulfil)--;

}

}

elseif(guan[i][j]==2)

{

guan[i][j]=6;

if(guan[*ir][j]==4)

guan[*ir][j]=0;

else

guan[*ir][j]=2;

Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guan[i][j]);

Coloring(left+(j+1)*2+j*SIZE,top+(*ir+1)*2+*ir*SIZE,guan[*ir][j]);

*ir=i;

Step++;

}

break;

}

case2:

{

if(i

elsebreak;

if(guan[i][j]==0)

{

if(guan[*ir][j]==6)

{

guan[i][j]=4;

guan[*ir][j]=2;

}

else

{

guan[*ir][j]=0;

guan[i][j]=4;

}

Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guan[i][j]);

Coloring(left+(j+1)*2+j*SIZE,top+(*ir+1)*2+*ir*SIZE,guan[*ir][j]);

*ir=i;

Step++;

}

elseif(guan[i][j]==3)

{

if(i

{

if(guan[i+1][j]==0)

guan[i+1][j]=3;

else

{

guan[i+1][j]=5;

(*fulfil)++;

}

guan[i][j]=0;

Coloring(left+(j+1)*2+j*SIZE,top+((i+1)+1)*2+(i+1)*SIZE,guan[i+1][j]);

Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guan[i][j]);

Step++;

}

}

elseif(guan[i][j]==5)

{

if(i

{

if(guan[i+1][j]==0)

guan[i+1][j]=3;

else

{

guan[i+1][j]=5;

(*fulfil)++;

}

guan[i][j]=2;

Coloring(left+(j+1)*2+j*SIZE,top+((i+1)+1)*2+(i+1)*SIZE,guan[i+1][j]);

Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guan[i][j]);

Step++;

(*fulfil)--;

}

}

elseif(guan[i][j]==2)

{

guan[i][j]=6;

if(guan[*ir][j]=4)

guan[*ir][j]=0;

else

guan[*ir][j]=2;

Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guan[i][j]);

Coloring(left+(j+1)*2+j*SIZE,top+(*ir+1)*2+*ir*SIZE,guan[*ir][j]);

*ir=i;

Step++;

}

break;

}

case3:

{

if(j>0)j--;

elsebreak;

if(guan[i][j]==0)

{

if(guan[i][*jr]==6)

{

guan[i][j]=4;

guan[i][*jr]=2;

}

else

{

guan[i][*jr]=0;

guan[i][j]=4;

}

Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guan[i][j]);

Coloring(left+(*jr+1)*2+*jr*SIZE,top+(i+1)*2+i*SIZE,guan[i][*jr]);

*jr=j;

Step++;

}

elseif(guan[i][j]==3)

{

if(j>0&&(guan[i][j-1]==0||guan[i][j-1]==2))

{

if(guan[i][j-1]==0)

guan[i][j-1]=3;

else

{

guan[i][j-1]=5;

(*fulfil)++;

}

guan[i][j]=0;

Coloring(left+((j-1)+1)*2+(j-1)*SIZE,top+(i+1)*2+i*SIZE,guan[i][j-1]);

Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guan[i][j]);

Step++;

}

}

elseif(guan[i][j]==5)

{

if(j>0&&(guan[i][j-1]==0||guan[i][j-1]==2))

{

if(guan[i][j-1]==0)

guan[i][j-1]=3;

else

{

guan[i][j-1]=5;

(*fulfil)++;

}

guan[i][j]=2;

Coloring(left+((j-1)+1)*2+(j-1)*SIZE,top+(i+1)*2+i*SIZE,guan[i][j-1]);

Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guan[i][j]);

Step++;

(*fulfil)--;

}

}

elseif(guan[i][j]==2)

{

guan[i][j]=6;

if(guan[i][*jr]==4)

guan[i][*jr]=0;

else

guan[i][*jr]=2;

Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guan[i][j]);

Coloring(left+(*jr+1)*2+*jr*SIZE,top+(i+1)*2+i*SIZE,guan[i][*jr]);

*jr=j;

Step++;

}

break;

}

case4:

{

if(j

elsebreak;

if(guan[i][j]==0)

{

if(guan[i][*jr]==6)

{

guan[i][j]=4;

guan[i][*jr]=2;

}

else

{

guan[i][*jr]=0;

guan[i][j]=4;

}

Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guan[i][j]);

Coloring(left+(*jr+1)*2+*jr*SIZE,top+(i+1)*2+i*SIZE,guan[i][*jr]);

*jr=j;

Step++;

}

elseif(guan[i][j]==3)

{

if(j

{

if(guan[i][j+1]==0)

guan[i][j+1]=3;

else

{

guan[i][j+1]=5;

(*fulfil)++;

}

guan[i][j]=0;

Coloring(left+((j+1)+1)*2+(j+1)*SIZE,top+(i+1)*2+i*SIZE,guan[i][j+1]);

Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guan[i][j]);

Step++;

}

}

elseif(guan[i][j]==5)

{

if(j

{

if(guan[i][j+1]==0)

guan[i][j+1]=3;

else

{

guan[i][j+1]=5;

(*fulfil)++;

}

guan[i][j]=2;

Coloring(left+((j+1)+1)*2+(j+1)*SIZE,top+(i+1)*2+i*SIZE,guan[i][j+1]);

Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guan[i][j]);

Step++;

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

当前位置:首页 > 成人教育 > 自考

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

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