推箱子
  gXunIb1GiO3r 2023年11月02日 67 0


#include<stdio.h>

#include<string.h>

#include <windows.h>

#include <stdlib.h>

#include <conio.h>

#include<mmsystem.h>

#include<graphics.h>

#pragma comment(lib,"winmm.lib")

int i,j,x,y,sum,k,m,su=0;

char a[10][10]={

{0,0,1,1,1,0,0,0},

{0,0,1,3,1,0,0,0},

{1,1,1,2,1,1,1,1},

{1,3,2,4,0,2,3,1},

{1,1,1,2,1,1,1,1},

{0,0,1,3,1,0,0,0},

{0,0,1,1,1,0,0,0},

};

int map[5][10][10]={

{

{0,0,1,1,1,0,0,0},

{0,0,1,3,1,0,0,0},

{1,1,1,2,1,1,1,1},

{1,3,2,4,0,2,3,1},

{1,1,1,2,1,1,1,1},

{0,0,1,3,1,0,0,0},

{0,0,1,1,1,0,0,0},

},

{

{1,1,1,1,1,1,1,1},

{1,0,0,1,0,0,0,1},

{1,0,2,3,3,2,0,1},

{1,4,2,3,5,0,0,1},

{1,0,2,3,3,2,0,1},

{1,0,0,1,0,0,0,1},

{1,1,1,1,1,1,1,1},

},

{

{0,0,0,1,1,1,1,0},

{0,1,1,1,0,4,1,0},

{0,1,0,0,2,0,1,0},

{1,1,0,1,0,1,1,1},

{1,0,0,1,0,1,3,1},

{1,0,1,0,0,2,3,1},

{1,0,2,0,0,0,3,1},

{1,1,1,1,1,1,1,1},

},

{

{0,0,1,1,1,1,1,1},

{0,0,1,0,0,0,0,1},

{1,1,1,2,2,2,0,1},

{1,4,0,2,3,3,0,1},

{1,0,2,3,3,3,1,1},

{1,1,1,1,0,0,1,0},

{0,0,0,1,1,1,1,0},

},

{

{0,0,1,1,1,1,1,1,0,0},

{0,0,1,0,0,0,0,1,1,1},

{0,0,1,0,2,0,0,0,0,1},

{1,1,1,0,2,0,1,1,0,1},

{1,3,3,3,0,2,0,0,0,1},

{1,3,3,3,2,1,2,0,1,1},

{1,1,1,1,0,1,0,2,0,1},

{0,0,0,1,0,0,4,0,0,1},

{0,0,0,1,1,1,1,1,1,1},

},

};

void all()//选择地图部分

{

printf("(选完后请按CR进入游戏)\n");

scanf("%d",&m);

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

{

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

{

a[i][j]=map[m-1][i][j];

}

}

}

void comeback()//复位系统(重新开始)

{

sum=0;

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

{

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

{

a[i][j]=map[m-1][i][j];

}

}

}

void put()//输出部分

{

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

{

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

{

switch(a[x][y])

{

case 0:printf(" ");break;

case 1:printf("■");break;

case 2:printf("□");break;

case 3:printf("○");break;

case 7:

case 4:printf("+ ");break;

case 5:printf("★");break;}

}

printf("\n");

}

}

void win()//判断输赢部分,计算剩余箱子的个数

{

k=0;

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

{

{

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

if(a[i][j]==2)

k++;

}

}

}

void fine()//每次控制后,重新找到人的位置

{

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

{

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

{

if(a[i][j]==4||a[i][j]==7)

{

x=i;y=j;

}

}

}

}

//以w,a,s,d控制上,左,下,右

void handleW()

{

if(a[x][y]==4)

{

if(a[x-1][y]==0||a[x-1][y]==3)

{

if(a[x-1][y]==0)

{a[x-1][y]=4;a[x][y]=0;sum++;}

if(a[x-1][y]==3)

{a[x-1][y]=7;a[x][y]=0;sum++;}

}

else

if(a[x-1][y]==2)

{

if(a[x-2][y]==0||a[x-2][y]==3)

{

if(a[x-2][y]==0)

{a[x][y]=0;a[x-1][y]=4;a[x-2][y]=2;sum++;}

if(a[x-2][y]==3)

{a[x][y]=0;a[x-1][y]=4;a[x-2][y]=5;sum++;}

}

}

else

if(a[x-1][y]==5)

{

if(a[x-2][y]==0||a[x-2][y]==3)

{

if(a[x-2][y]==0)

{a[x][y]=0;a[x-1][y]=7;a[x-2][y]=2;sum++;}

if(a[x-2][y]==3)

{a[x][y]=0;a[x-1][y]=7;a[x-2][y]=5;sum++;}

}

}

}

if(a[x][y]==7)

{

if(a[x-1][y]==0||a[x-1][y]==3)

{

if(a[x-1][y]==0)

{a[x-1][y]=4;a[x][y]=3;sum++;}

if(a[x-1][y]==3)

{a[x-1][y]=7;a[x][y]=3;sum++;}

}

else

if(a[x-1][y]==2)

{

if(a[x-2][y]==0||a[x-2][y]==3)

{

if(a[x-2][y]==0)

{a[x][y]=3;a[x-1][y]=4;a[x-2][y]=2;sum++;}

if(a[x-2][y]==3)

{a[x][y]=3;a[x-1][y]=4;a[x-2][y]=5;sum++;}

}

}

else

if(a[x-1][y]==5)

{

if(a[x-2][y]==0||a[x-2][y]==3)

{

if(a[x-2][y]==0)

{a[x][y]=3;a[x-1][y]=7;a[x-2][y]=2;sum++;}

if(a[x-2][y]==3)

{a[x][y]=3;a[x-1][y]=7;a[x-2][y]=5;sum++;}

}

}

}

}

void handleA()

{

if(a[x][y]==4)

{

if(a[x][y-1]==0||a[x][y-1]==3)

{

if(a[x][y-1]==0)

{a[x][y-1]=4;a[x][y]=0;sum++;}

if(a[x][y-1]==3)

{a[x][y-1]=7;a[x][y]=0;sum++;}

}

else

if(a[x][y-1]==2)

{

if(a[x][y-2]==0||a[x][y-2]==3)

{

if(a[x][y-2]==0)

{a[x][y]=0;a[x][y-1]=4;a[x][y-2]=2;sum++;}

if(a[x][y-2]==3)

{a[x][y]=0;a[x][y-1]=4;a[x][y-2]=5;sum++;}

}

}

else

if(a[x][y-1]==5)

{

if(a[x][y-2]==0||a[x][y-2]==3)

{

if(a[x][y-2]==0)

{a[x][y]=0;a[x][y-1]=7;a[x][y-2]=2;sum++;}

if(a[x][y-2]==3)

{a[x][y]=0;a[x][y-1]=7;a[x][y-2]=5;sum++;}

}

}

}

if(a[x][y]==7)

{

if(a[x][y-1]==0||a[x][y-1]==3)

{

if(a[x][y-1]==0)

{a[x][y-1]=4;a[x][y]=3;sum++;}

if(a[x][y-1]==3)

{a[x][y-1]=7;a[x][y]=3;sum++;}

}

else

if(a[x][y-1]==2)

{

if(a[x][y-2]==0||a[x][y-2]==3)

{

if(a[x][y-2]==0)

{a[x][y]=3;a[x][y-1]=4;a[x][y-2]=2;sum++;}

if(a[x][y-2]==3)

{a[x][y]=3;a[x][y-1]=4;a[x][y-2]=5;sum++;}

}

}

else

if(a[x][y-1]==5)

{

if(a[x][y-2]==0||a[x][y-2]==3)

{

if(a[x][y-2]==0)

{a[x][y]=3;a[x][y-1]=7;a[x][y-2]=2;sum++;}

if(a[x][y-2]==3)

{a[x][y]=3;a[x][y-1]=7;a[x][y-2]=5;sum++;}

}

}

}

}

void handleS()

{

if(a[x][y]==4)

{

if(a[x+1][y]==0||a[x+1][y]==3)

{

if(a[x+1][y]==0)

{a[x+1][y]=4;a[x][y]=0;sum++;}

if(a[x+1][y]==3)

{a[x+1][y]=7;a[x][y]=0;sum++;}

}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论