C-语言编写的《推箱子》游戏.doc_第1页
C-语言编写的《推箱子》游戏.doc_第2页
C-语言编写的《推箱子》游戏.doc_第3页
C-语言编写的《推箱子》游戏.doc_第4页
C-语言编写的《推箱子》游戏.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C 语言编写的推箱子游戏.txt爱尔兰一个不离婚的国家,一个一百年的约定。难过了,不要告诉别人,因为别人不在乎。真话假话都要猜,这就是现在的社会。C 语言编写的推箱子游戏看到别人用 C 编出了俄罗斯方块,心想:简直不可思意。心里满是佩服,跟本没想到 C 还能有这么搞法,心里非常兴奋,我这个人就是爱编些小东西(大东西编不来),感觉有意思的都总想动手搞搞,以前用VB做过推箱子游戏,用C还没做过,当时也觉得用C不可能,觉得要是能那是太难了,现在看了别人用C对图形的处理,慢慢觉得推箱子游戏自己可以把它写出来,于是就开始编写推箱子游戏(自觉得伟大的工程),今天写完,心里非常兴奋,迫不及待的就往论坛里发,想炫耀一下,满足下虚荣心,唉!我这人就是这样,虚荣的很。大家支持一下,有夸奖才有动力。呵呵!程序在TC2.0、Win-TC下测试通过。程序代码:#include #include #include #include #include #define SIZE 20#define KEY_UP 0x4800#define KEY_DOWN 0x5000#define KEY_LEFT 0x4b00#define KEY_RIGHT 0x4d00#define KEY_ESC 0x011b#define Re 0x1372int Step=0,right_Step,top_Step;void cheshi(int a6,int n,int m)int i,j;for(i=0;in;i+) for(j=0;jm;j+) printf(%d ,aij); printf(n); void Coloring(int x,int y,int subscript) switch(subscript) case 0: setfillstyle(1,DARKGRAY); break; case 1: setfillstyle(6,YELLOW); break; case 2: setfillstyle(8,DARKGRAY); break; case 3: setfillstyle(1,CYAN); break; case 4: setfillstyle(1,RED); break; case 5: setfillstyle(1,CYAN); break; case 6: setfillstyle(1,RED); break; bar(x,y,x+SIZE,y+SIZE);void display(int guan6,int imax,int jmax) int gdriver = DETECT, gmode, errorcode; int left, top, right, bottom,x,y; int i,j; initgraph(&gdriver, &gmode, ); errorcode = graphresult(); if (errorcode != grOk) printf(Graphics error: %sn, grapherrormsg(errorcode); printf(Press any key to halt:); 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;iimax;i+) for(j=0;jjmax;j+) x=left+(j+1)*2+j*SIZE; y=top+(i+1)*2+i*SIZE; Coloring(x,y,guanij); 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);void CopyGuan(int guan6,int guan_all6,int imax,int jmax)int i,j; for(i=0;iimax;i+) for(j=0;j0)i-; else break; if(guanij=0) if(guan*irj=6) guanij=4; guan*irj=2; else guan*irj=0; guanij=4; Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guanij); Coloring(left+(j+1)*2+j*SIZE,top+(*ir+1)*2+*ir*SIZE,guan*irj); *ir=i; Step+; else if(guanij=3) if(i0 & (guani-1j=0|guani-1j=2) if(guani-1j=0) guani-1j=3; else guani-1j=5; (*fulfil)+; guanij=0; Coloring(left+(j+1)*2+j*SIZE,top+(i-1)+1)*2+(i-1)*SIZE,guani-1j); Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guanij); Step+; else if(guanij=5) if(i0 & (guani-1j=0|guani-1j=2) if(guani-1j=0) guani-1j=3; else guani-1j=5; (*fulfil)+; guanij=2; Coloring(left+(j+1)*2+j*SIZE,top+(i-1)+1)*2+(i-1)*SIZE,guani-1j); Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guanij); Step+; (*fulfil)-; else if(guanij=2) guanij=6; if(guan*irj=4) guan*irj=0; else guan*irj=2; Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guanij); Coloring(left+(j+1)*2+j*SIZE,top+(*ir+1)*2+*ir*SIZE,guan*irj); *ir=i; Step+; break; case 2: if(iimax-1)i+; else break; if(guanij=0) if(guan*irj=6) guanij=4; guan*irj=2; else guan*irj=0; guanij=4; Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guanij); Coloring(left+(j+1)*2+j*SIZE,top+(*ir+1)*2+*ir*SIZE,guan*irj); *ir=i; Step+; else if(guanij=3) if(iimax-1 & (guani+1j=0|guani+1j=2) if(guani+1j=0) guani+1j=3; else guani+1j=5; (*fulfil)+; guanij=0; Coloring(left+(j+1)*2+j*SIZE,top+(i+1)+1)*2+(i+1)*SIZE,guani+1j); Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guanij); Step+; else if(guanij=5) if(i0)j-; else break; if(guanij=0) if(guani*jr=6) guanij=4; guani*jr=2; else guani*jr=0; guanij=4; Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guanij); Coloring(left+(*jr+1)*2+*jr*SIZE,top+(i+1)*2+i*SIZE,guani*jr); *jr=j; Step+; else if(guanij=3) if(j0 & (guanij-1=0|guanij-1=2) if(guanij-1=0) guanij-1=3; else guanij-1=5; (*fulfil)+; guanij=0; Coloring(left+(j-1)+1)*2+(j-1)*SIZE,top+(i+1)*2+i*SIZE,guanij-1); Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guanij); Step+; else if(guanij=5) if(j0 & (guanij-1=0|guanij-1=2) if(guanij-1=0) guanij-1=3; else guanij-1=5; (*fulfil)+; guanij=2; Coloring(left+(j-1)+1)*2+(j-1)*SIZE,top+(i+1)*2+i*SIZE,guanij-1); Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guanij); Step+; (*fulfil)-; else if(guanij=2) guanij=6; if(guani*jr=4) guani*jr=0; else guani*jr=2; Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guanij); Coloring(left+(*jr+1)*2+*jr*SIZE,top+(i+1)*2+i*SIZE,guani*jr); *jr=j; Step+; break; case 4: if(jjmax-1)j+; else break; if(guanij=0) if(guani*jr=6) guanij=4; guani*jr=2; else guani*jr=0; guanij=4; Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guanij); Coloring(left+(*jr+1)*2+*jr*SIZE,top+(i+1)*2+i*SIZE,guani*jr); *jr=j; Step+; else if(guanij=3) if(jjmax-1 & (guanij+1=0|guanij+1=2) if(guanij+1=0) guanij+1=3; else guanij+1=5; (*fulfil)+; guanij=0; Coloring(left+(j+1)+1)*2+(j+1)*SIZE,top+(i+1)*2+i*SIZE,guanij+1); Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guanij); Step+; else if(guanij=5) if(jjmax-1 & (guanij+1=0|guanij+1=2) if(guanij+1=0) guanij+1=3; else guanij+1=5; (*fulfil)+; guanij=2; Coloring(left+(j+1)+1)*2+(j+1)*SIZE,top+(i+1)*2+i*SIZE,guanij+1); Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guanij); Step+; (*fulfil)-; else if(guanij=2) guanij=6; if(guani*jr=4) guani*jr=0; else guani*jr=2; Coloring(left+(j+1)*2+j*SIZE,top+(i+1)*2+i*SIZE,guanij); Coloring(left+(*jr+1)*2+*jr*SIZE,top+(i+1)*2+i*SIZE,guani*jr); *jr=j; Step+; break; void YouWin(void) setcolor(RED); rectangle(getmaxx()/2-50,getmaxy()/2-20,getmaxx()/2+50,getmaxy()/2+15); settextjustify(LEFT_TEXT,TOP_TEXT); setcolor(WHITE); outtextxy(getmaxx()/2-46,getmaxy()/2-16,YOU WIN!); outtextxy(getmaxx()/2-46,getmaxy()/2,Next:Enter); getch(); clrscr();int main(void)int guan66,subi_j2,ijmax2,guan_num=1,key,fulfil=0,point;char s10;int guan_all2066=0,0,2,0,0,0,0,1,0,5,0,0,4,0,3,0,0,0,0,1,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,5,0,0,0,0,1,0,0,0,4,3,5,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,1,1,0,0,0,0,1,0,2,0,2,3,1,0,0,3,4,0,0,1,1,1,5,1,0,1,1,1,0,0,0,0,0,0,1,0,0,0,4,0,0,3,0,1,3,1,1,2,2,1,0,2,1,0,0,1,3,0,0,0,0,1,0,0,1,1,1,1,0,0,0,0,1,1,2,1,1,3,0,0,2,2,3,0,0,0,0,1,3,0,0,0,0,4,0,1,1,0,0,0,0,0,0,1,1,1,0,4,0,0,0,5,3,0,0,0,0,0,0,0,0,1,0,2,1,1,0,1,3,0,1,1,0,1,0,2,1,1,0,2,1,1,1,2,0,0,1,0,0,2,0,0,3,3,0,4,0,0,0,3,0,0,0,0,0,1,0,0,0,0,0,1,1,1,0,1,1,1,0,4,1,1,1,1,0,0,0,2,0,1,3,3,0,0,0,0,0,0,1,2,0,0,3,1,1,1,2,0,0,1,1,0,2,2,1,1,1,0,3,0,0,0,0,0,0,1,3,1,0,0,4,0,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,2,0,0,3,0,1,0,0,0,5,3,0,0,0,0,2,1,4,0,0,0,0,0,0,1,0,0,0,0,1,1,0,2,0,0,1,1,0,0,1,0,0,0,0,0,2,0,1,0,0,0,3,5,3,0,0,1,4,0,1,1,0,1,0,0,1,1,0,1,0,4,0,1,1,1,0,2,0,0,0,2,0,3,2,3,0,1,3,1,0,1,1,1,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,3,1,0,1,0,0,2,0,4,1,0,0,5,0,0,0,0,1,0,1,3,0,0,1,2,0,0,1,0,1,0,0,1,1,1,2,2,3,0,0,2,0,1,3,0,3,0,4,0,0,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,4,1,1,0,3,1,0,1,1,0,5,0,3,0,0,0,0,0,1,1,0,1,2,0,0,2,0,1,1,0,0,0,1,0,0,0,4,1,0,0,0,1,0,0,0,2,0,0,3,0,0,0,3,3,1,2,0,1,1,0,0,2,0,0,0,0,0,0,0,1,1,2,0,1,1,0,2,0,0,1,1,0,0,0,3,3,0,1,0,2,0,3,4,0,0,0,0,0,0,0,0,0,0,0,0,1,4,2,0,0,1,0,3,3,5,0,1,0,0,1,0,0,1,0,0,1,0,0,2,1,1,1,0,1,0,1,1,1,0,0,0,1,1,1,1,0,0,1,1,1,1,3,2,1,1,0,0,2,0,1,1,0,0,1,2,0,3,0,0,3,0,0,0,0,1,4,0,0,0,0,1,1,1,0,1,0,5,4,1,0,0,5,0,0,0,1,1,3,0,0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论