⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 txz.txt

📁 简单的用C语言编写的推箱子游戏
💻 TXT
📖 第 1 页 / 共 2 页
字号:
   if(ghose[p.x-a.x][p.y-a.y]==3&&ghose[p.x][p.y]==2&&ghose[p.x+a.x][a.y+p.y]==4) 
  {ghose[p.x-a.x][p.y-a.y]=ghose[p.x][p.y]=ghose[p.x+a.x][p.y+a.y]=0; 
   DRAWMISSION(ghose[p.x][p.y],p.y,p.x); 
   DRAWMISSION(ghose[p.x-a.x][p.y-a.y],p.y-a.y,p.x-a.x); 
   DRAWMISSION(ghose[p.x+a.x][p.y+a.y],p.y+a.y,p.x+a.x); 
   ghose[p.x-a.x][p.y-a.y]=0; 
   DRAWMISSION(ghose[p.x-a.x][p.y-a.y],p.y-a.y,p.x-a.x); 
   ghose[p.x][p.y]=3; 
   DRAWMISSION(ghose[p.x][p.y],p.y,p.x); 
   ghose[p.x+a.x][p.y+a.y]=5; 
   DRAWMISSION(ghose[p.x+a.x][p.y+a.y],p.y+a.y,p.x+a.x); 
   } 
    if(ghose[p.x-a.x][p.y-a.y]==3&&ghose[p.x][p.y]==5&&ghose[p.x+a.x][a.y+p.y]==4) 
   {ghose[p.x-a.x][p.y-a.y]=ghose[p.x][p.y]=ghose[p.x+a.x][p.y+a.y]=0; 
    DRAWMISSION(ghose[p.x][p.y],p.y,p.x); 
   DRAWMISSION(ghose[p.x-a.x][p.y-a.y],p.y-a.y,p.x-a.x); 
   DRAWMISSION(ghose[p.x+a.x][p.y+a.y],p.y+a.y,p.x+a.x); 
   ghose[p.x-a.x][p.y-a.y]=0; 
   DRAWMISSION(ghose[p.x-a.x][p.y-a.y],p.y-a.y,p.x-a.x); 
   ghose[p.x][p.y]=6; 
   DRAWMISSION(ghose[p.x][p.y],p.y,p.x); 
   ghose[p.x+a.x][p.y+a.y]=5; 
   DRAWMISSION(ghose[p.x+a.x][p.y+a.y],p.y+a.y,p.x+a.x); 
   } 
    if(ghose[p.x-a.x][p.y-a.y]==6&&ghose[p.x][p.y]==2&&ghose[p.x+a.x][a.y+p.y]==0) 
   {ghose[p.x-a.x][p.y-a.y]=ghose[p.x][p.y]=ghose[p.x+a.x][p.y+a.y]=0; 
    DRAWMISSION(ghose[p.x][p.y],p.y,p.x); 
   DRAWMISSION(ghose[p.x-a.x][p.y-a.y],p.y-a.y,p.x-a.x); 
   DRAWMISSION(ghose[p.x+a.x][p.y+a.y],p.y+a.y,p.x+a.x); 
    ghose[p.x-a.x][p.y-a.y]=4; 
   DRAWMISSION(ghose[p.x-a.x][p.y-a.y],p.y-a.y,p.x-a.x); 
   ghose[p.x][p.y]=3; 
   DRAWMISSION(ghose[p.x][p.y],p.y,p.x); 
   ghose[p.x+a.x][p.y+a.y]=2; 
   DRAWMISSION(ghose[p.x+a.x][p.y+a.y],p.y+a.y,p.x+a.x); 
   } 
   if(ghose[p.x-a.x][p.y-a.y]==6&&ghose[p.x][p.y]==5&&ghose[p.x+a.x][a.y+p.y]==0) 
   {ghose[p.x-a.x][p.y-a.y]=ghose[p.x][p.y]=ghose[p.x+a.x][p.y+a.y]=0; 
    DRAWMISSION(ghose[p.x][p.y],p.y,p.x); 
   DRAWMISSION(ghose[p.x-a.x][p.y-a.y],p.y-a.y,p.x-a.x); 
   DRAWMISSION(ghose[p.x+a.x][p.y+a.y],p.y+a.y,p.x+a.x); 
   ghose[p.x-a.x][p.y-a.y]=4; 
   DRAWMISSION(ghose[p.x-a.x][p.y-a.y],p.y-a.y,p.x-a.x); 
   ghose[p.x][p.y]=6; 
   DRAWMISSION(ghose[p.x][p.y],p.y,p.x); 
   ghose[p.x+a.x][p.y+a.y]=2; 
   DRAWMISSION(ghose[p.x+a.x][p.y+a.y],p.y+a.y,p.x+a.x); 
   } 
   if(ghose[p.x-a.x][p.y-a.y]==6&&ghose[p.x][p.y]==2&&ghose[p.x+a.x][a.y+p.y]==4) 
   {ghose[p.x-a.x][p.y-a.y]=ghose[p.x][p.y]=ghose[p.x+a.x][p.y+a.y]=0; 
    DRAWMISSION(ghose[p.x][p.y],p.y,p.x); 
   DRAWMISSION(ghose[p.x-a.x][p.y-a.y],p.y-a.y,p.x-a.x); 
   DRAWMISSION(ghose[p.x+a.x][p.y+a.y],p.y+a.y,p.x+a.x); 
   ghose[p.x-a.x][p.y-a.y]=4; 
   DRAWMISSION(ghose[p.x-a.x][p.y-a.y],p.y-a.y,p.x-a.x); 
   ghose[p.x][p.y]=3; 
   DRAWMISSION(ghose[p.x][p.y],p.y,p.x); 
   ghose[p.x+a.x][p.y+a.y]=5; 
   DRAWMISSION(ghose[p.x+a.x][p.y+a.y],p.y+a.y,p.x+a.x); 
   } 
   if(ghose[p.x-a.x][p.y-a.y]==6&&ghose[p.x][p.y]==5&&ghose[p.x+a.x][p.y+a.y]==4) 
 
 
  
 
    {ghose[p.x-a.x][p.y-a.y]=ghose[p.x][p.y]=ghose[p.x+a.x][p.y+a.y]=0; 
   DRAWMISSION(ghose[p.x][p.y],p.y,p.x); 
   DRAWMISSION(ghose[p.x-a.x][p.y-a.y],p.y-a.y,p.x-a.x); 
   DRAWMISSION(ghose[p.x+a.x][p.y+a.y],p.y+a.y,p.x+a.x); 
   ghose[p.x-a.x][p.y-a.y]=4; 
   DRAWMISSION(ghose[p.x-a.x][p.y-a.y],p.y-a.y,p.x-a.x); 
   ghose[p.x][p.y]=6; 
   DRAWMISSION(ghose[p.x][p.y],p.y,p.x); 
   ghose[p.x+a.x][p.y+a.y]=5; 
   DRAWMISSION(ghose[p.x+a.x][p.y+a.y],p.y+a.y,p.x+a.x); 
   } 
    p.x=p.x+a.x; p.y=p.y+a.y;}} 

DRAWEND()          /*画结束时的界面*/ 
{ setbkcolor(BLACK); 
  cleardevice(); 
  setcolor(YELLOW); 
  setfillstyle(1,YELLOW); 
  circle(440,100,80); 
  floodfill(401,101,YELLOW); 
  setcolor(YELLOW); 
  settextstyle(1,0,8); 
  outtextxy(120,240,"GOODBYE !"); 
  DRAWSTAR(); 
  bioskey(0); 
  exit(0);} 
ABOVEALL()        /*画开始时的欢迎界面*/ 
{ setcolor(YELLOW); 
  setfillstyle(1,YELLOW); 
  circle(440,100,80); 
  floodfill(401,101,YELLOW); 
  setcolor(RED); 
  settextstyle(1,0,5); 
  outtextxy(5,240,"WELCOME TO THE BOX WORLD!"); 
  DRAWSTAR(); 
  bioskey(0); 
  } 
void DrawRectangle(int i,int j,int k,int l)    /*用于画登陆界面中的矩形边框*/ 
{ setcolor(RED); 
  setfillstyle(1,GREEN); 
  rectangle(i,j,k,l); 
  floodfill(i+1,j+1,BLACK); 
  } 
void DrawStar()       /*用户登陆时在界面指定地方输出文字*/ 
{ int  n; 
  char *s[4]={"USERS LANDING","ACCOUNTS","PASSWORD","VALIDATE"}; 
  settextstyle(0,0,2); 
  setcolor(RED); 
  outtextxy(140,100,s[0]); 
  settextstyle(0,0,1); 
  for(n=1;n<4;n++) 
  outtextxy(120,100+n*30,s[n]); 
  settextstyle(0,0,2); 
  outtextxy(270,188,"(ACDF)"); 
  } 
DRAWLANDING()         /*画登陆界面*/ 
{ 
DrawRectangle(185,121,360,141); 
DrawRectangle(185,152,360,172); 
DrawRectangle(185,184,270,204); 
DrawStar(); 
settextstyle(0,0,1); 
bioskey(0); 
if(!bioskey(1)) 
{setcolor(GREEN); 
 outtextxy(187,129,"200531500194"); 
 outtextxy(187,160,"**********"); 
 settextstyle(0,0,2); 
 outtextxy(187,188,"ACDF"); 
 } 
 bioskey(0); 
 } 
void Init()         /*驱动显卡*/ 
{ 
int gd=VGA,gm=VGAHI; 
initgraph(&gd,&gm,"c:\\tc"); 
} 
DRAWBACK(int i,int j)    /*画空地*/ 
{ setcolor(GREEN); 
  setfillstyle(1,GREEN); 
  rectangle(STARTX+i*36,STARTY+j*36,STARTX+(i+1)*36,STARTY+(j+1)*36); 
  floodfill(STARTX+i*36+18,STARTY+j*36+18,GREEN);} 
DRAWMAN(int i,int j)        /*画空地上的人*/ 
{  setcolor(RED); 
   setfillstyle(1,WHITE); 
   circle(STARTX+18+i*36,STARTY+18+j*36,18); 
   floodfill(STARTX+18+i*36,STARTY+18+j*36,RED); 
   arc(STARTX+18+i*36-6,STARTY+18+j*36-4,20,160,4); 
   arc(STARTX+18+i*36+6,STARTY+18+j*36-4,20,160,4); 
   arc(STARTX+18+i*36,STARTY+18+j*36-4,220,320,14); 
   } 
DRAWBOX(int i,int j)          /*画空地上的箱子*/ 
{  setcolor(YELLOW); 
   setfillstyle(1,BLUE); 
   rectangle(STARTX+i*36,STARTY+j*36,STARTX+i*36+35,STARTY+j*36+35); 
   floodfill(STARTX+i*36+18,STARTY+j*36+18,YELLOW); 
} 
DRAWFLAG(int i,int j)         /*画目的地--旗子*/ 
{setcolor(YELLOW); 
 arc(STARTX+i*36+12,STARTY+j*36-18,240,300,24); 
 arc(STARTX+i*36+12,STARTY+j*36-18+18,240,300,24); 
 arc(STARTX+i*36+12+18,STARTY+j*36-18+30,60,120,12); 
 
 
  

  arc(STARTX+i*36+12+18,STARTY+j*36-18+48,60,120,12); 
 line(STARTX+i*36+12-12,STARTY+j*36-18+22,STARTX+i*36+12-12,STARTY+j*36-18+53); 
 line(STARTX+i*36+12+23,STARTY+j*36-18+20,STARTX+i*36+12+23,STARTY+j*36-18+38); 
} 
DRAWMAN1(int i,int j)        /*画到达目的地后的人*/ 
{  setcolor(RED); 
   setfillstyle(1,YELLOW); 
   circle(STARTX+18+i*36,STARTY+18+j*36,18); 
   floodfill(STARTX+18+i*36,STARTY+18+j*36,RED); 
   arc(STARTX+18+i*36-6,STARTY+18+j*36-4,20,160,4); 
   arc(STARTX+18+i*36+6,STARTY+18+j*36-4,20,160,4); 
   arc(STARTX+18+i*36,STARTY+18+j*36-4,220,320,14); } 
DRAWBOX1(int i,int j)      /*画到达目的地后的箱子*/ 
{ setcolor(YELLOW); 
  setfillstyle(1,YELLOW); 
  bar(STARTX+i*36,STARTY+j*36,STARTX+i*36+36,STARTY+j*36+36); 
  } 
DRAWWALL(int i,int j)         /*画障碍物--墙壁*/ 
{setcolor(RED); 
 setfillstyle(1,RED); 
 bar(STARTX+i*36,STARTY+j*36,STARTX+i*36+36,STARTY+j*36+36);} 
DRAWMAN2(int i,int j)         /* 画游戏界面时旁边介绍时用的人(在空地)*/ 
{  setcolor(RED); 
   setfillstyle(1,WHITE); 
   circle(i,j,18); 
   floodfill(i+1,j+1,RED); 
   arc(i-6,j-4,20,160,4); 
   arc(i+6,j-4,20,160,4); 
   arc(i,j-4,220,320,14); 
   } 
DRAWBOX2(int i,int j)       /* 画游戏界面时旁边介绍时用的箱子(在空地)*/      
{  setcolor(YELLOW); 
   setfillstyle(1,BLUE); 
   rectangle(i,j,i+36,j+36); 
   floodfill(i+1,j+1,YELLOW); 
} 
DRAWBOX3(int i,int j)       /* 画游戏界面时旁边介绍时用的箱子(在目的地)*/ 
{setcolor(YELLOW); 
 setfillstyle(1,YELLOW); 
 rectangle(i,j,i+36,j+36); 
 floodfill(i+1,j+1,YELLOW); 
} 
DRAWFLAG1(int i,int j)       /* 画游戏界面时旁边介绍时用的目的地--旗子*/ 
{setcolor(YELLOW); 
 arc(i,j,240,300,24); 
 arc(i,j+18,240,300,24); 
 arc(i+18,j+30,60,120,12); 
 arc(i+18,j+48,60,120,12); 
 line(i-12,j+22,i-12,j+53); 
 line(i+24,j+20,i+24,j+38); 
} 
DRAWMAN3(int i,int j)          /* 画游戏界面时旁边介绍时用的人(在目的地)*/ 
{ setcolor(RED); 
  setfillstyle(1,YELLOW); 
  circle(i,j,18); 
  floodfill(i+1,j+1,RED); 
  arc(i-6,j-4,20,160,4); 
  arc(i+6,j-4,20,160,4); 
  arc(i,j-4,220,320,14);} 
DRAWWALL1(int i,int j)         /* 画游戏界面时旁边介绍时用的障碍物--墙壁*/ 
{setcolor(RED); 
 setfillstyle(1,RED); 
 bar(i,j,i+36,j+36);} 
MISSION1()                     /*画第一关的游戏界面*/ 
{int m,n; 
 for(m=0;m<10;m++) 
 for(n=0;n<10;n++) 
 ghose[m][n]=0; 
 for(m=0;m<10;m++) 
 ghose[0][m]=ghose[9][m]=ghose[m][0]=ghose[m][9]=1; 
 for(m=1;m<3;m++) 
 ghose[m][5]=1; 
 for(m=4;m<7;m++) 
 ghose[m][1]=1; 
 for(m=4,n=7;m<7&&n>4;m++,n--) 
 ghose[m][n]=1; 
 ghose[6][8]=ghose[8][5]=ghose[5][3]=1; 
 ghose[8][1]=2; 
 for(m=2;m<4;m++) 
 ghose[m][2]=ghose[3][m]=3; 
 ghose[1][8]=ghose[6][6]=ghose[8][8]=4; 
 p.x=8; p.y=1;BOXNUM=3; 
} 
MISSION2()                /*画第二关的游戏界面*/ 
{int m,n; 
 for(m=0;m<10;m++) 
 for(n=0;n<10;n++) 
 ghose[m][n]=0; 
 for(m=0;m<10;m++) 
 ghose[0][m]=ghose[9][m]=ghose[m][0]=ghose[m][9]=1; 
 for(m=2;m<4;m++) 
 ghose[m][1]=ghose[3][m-1]=1; 
 for(m=3,n=6;m>1&&n<8;m--,n++) 
 ghose[m][n]=1; 
 for(m=4;m<7;m++) 
 ghose[6][m]=ghose[m+1][5]=1; 
 ghose[1][4]=ghose[2][8]=1; 
 ghose[6][8]=2; 
 for(m=3;m<5;m++) 
 ghose[m][4]=ghose[4][m]=3; 
 ghose[4][2]=3; 
 ghose[2][6]=ghose[3][7]=ghose[5][6]=ghose[7][6]=4; 
 p.x=6;  p.y=8;BOXNUM=4; 
} 
MISSION3()           /*画第三关的游戏界面*/ 
{int m,n; 
 for(m=0;m<10;m++) 
 for(n=0;n<10;n++) 
 ghose[m][n]=0; 
 for(m=0;m<10;m++) 
 ghose[0][m]=ghose[9][m]=ghose[m][0]=ghose[m][9]=1; 
 for(m=2,n=5;m<4&&n<7;m++,n++) 
 ghose[m][n]=1; 
 ghose[1][3]=ghose[3][3]=ghose[4][1]=ghose[5][4]=ghose[6][7]=ghose[7][5]=ghose[8][3]=1; 
 ghose[4][4]=2; 
 for(m=6;m<8;m++) 
 ghose[m][2]=ghose[m][4]=3; 
 ghose[7][3]=3; 
 for(m=6;m<9;m++) 
 ghose[1][m]=4; 
 ghose[3][1]=ghose[8][7]=4; 
 p.x=4;  p.y=4;  BOXNUM=5;  } 
 DRAWMISSION(int n,int i,int j)   /*依据ghose[i][j]所对应的值,在相应位置画出图像*/   
{ 
switch(n) 
   { 
   case 0:DRAWBACK(i,j);break; 
   case 1:DRAWWALL(i,j);break; 
   case 2:DRAWMAN(i,j);break; 
   case 3:DRAWBOX(i,j);break; 
   case 4:DRAWFLAG(i,j);break; 
   case 5:DRAWMAN1(i,j);break; 
   case 6:DRAWBOX1(i,j);break; 
   } 
} 
CHOOSEMISSION(int n)   /*根据关数去画相应的游戏界面*/      
{ 
  int i,j; 
  for(i=0;i<10;i++) 
  for(j=0;j<10;j++) 
  ghose[i][j]=0; 
switch(n) 
   { 
    case 1:MISSION1();break; 
    case 2:MISSION2();break; 
    case 3:MISSION3();break; 
   } 
} 
 DRAWINTRODUCTION( )   /*画游戏界面旁边的介绍*/ 
{ int n; 
  char *s[6]={"WALL","MAN","BOX","DESTINATION","MAN&&DESTINATION","BOX&&DESTINATION"}; 
  settextstyle(1,0,2); 
  outtextxy(430,40,"INTRODUCTION"); 
  settextstyle(0,0,1); 
  for(n=0;n<6;n++) 
  outtextxy(500,100+n*50,s[n]); 
 DRAWWALL1(455,82); 
 DRAWMAN2(473,151); 
 DRAWBOX2(455,182); 
 DRAWFLAG1(467,220); 
 DRAWMAN3(473,301); 
 DRAWBOX3(455,335);} 
void main()            /*主函数*/ 
{ 
 Init(); 
 GOOD(); 
 setbkcolor(BLACK); 
 cleardevice(); 
 ABOVEALL(); 
 setbkcolor(BLUE); 
 cleardevice(); 
 DRAWLANDING(); 
 setbkcolor(BKCOLOR); 
 cleardevice(); 
 GAME(); 
 getch(); 
 closegraph(); 
} 

 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -