该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
该推箱子拥有对成绩的记录功能,因此,请挑战自己的最少步数吧!
源代码如下:
#include
#include
int main()
{
system("color 0a");
char a[9][11]={" ###### ",
" # ###",
" # o #",
"### o ## #",
"#*** o #",
"#***o#o ##",
"#### # o #",
" # s #",
" #######"},b,c;
int i,e,f=0,x=7,y=6;
FILE *Re;
while(1)
{
for(i=0;i<=8;i++)
{
puts(a[i]);
}
printf("你已经走了%d步\n",f);
if (a[4][1]=='@' && a[4][2]=='@' && a[4][3]=='@' && a[5][1]=='@' && a[5][2]=='@' && a[5][3]=='@')
break;
b=getch();
if (b=='s')
{
if (a[x+1][y]=='o' && a[x+2][y]!='#' && a[x+2][y]!='o' && a[x+2][y]!='@')
{
a[x+2][y]='o';
a[x+1][y]='s';
a[x][y]=' ';
x++;
f++;
}
if (a[x+1][y]=='@' && a[x+2][y]!='#' && a[x+2][y]!='o' && a[x+2][y]!='@')
{
a[x+2][y]='o';
a[x+1][y]='s';
a[x][y]=' ';
x++;
f++;
}
if (a[x+1][y]!='o' && a[x+1][y]!='#' && a[x+1][y]!='@')
{
a[x+1][y]='s';
a[x][y]=' ';
x++;
f++;
}
}
if (b=='w')
{
if (a[x-1][y]=='o' && a[x-2][y]!='#' && a[x-2][y]!='o' && a[x-2][y]!='@')
{
a[x-2][y]='o';
a[x-1][y]='s';
a[x][y]=' ';
x--;
f++;
}
if (a[x-1][y]=='@' && a[x-2][y]!='#' && a[x-2][y]!='o' && a[x-2][y]!='@')
{
a[x-2][y]='o';
a[x-1][y]='s';
a[x][y]=' ';
x--;
f++;
}
if (a[x-1][y]!='o' && a[x-1][y]!='#' && a[x-1][y]!='@')
{
a[x-1][y]='s';
a[x][y]=' ';
x--;
f++;
}
}
if (b=='a')
{
if (a[x][y-1]=='o' && a[x][y-2]!='#' && a[x][y-2]!='o' && a[x][y-2]!='@')
{
a[x][y-2]='o';
a[x][y-1]='s';
a[x][y]=' ';
y--;
f++;
}
if (a[x][y-1]=='@' && a[x][y-2]!='#' && a[x][y-2]!='o' && a[x][y-2]!='@')
{
a[x][y-2]='o';
a[x][y-1]='s';
a[x][y]=' ';
y--;
f++;
}
if (a[x][y-1]!='o' && a[x][y-1]!='#' && a[x][y-1]!='@')
{
a[x][y-1]='s';
a[x][y]=' ';
y--;
f++;
}
}
if (b=='d')
{
if (a[x][y+1]=='o' && a[x][y+2]!='#' && a[x][y+2]!='o' && a[x][y+2]!='@')
{
a[x][y+2]='o';
a[x][y+1]='s';
a[x][y]=' ';
y++;
f++;
}
if (a[x][y+1]=='@' && a[x][y+2]!='#' && a[x][y+2]!='o' && a[x][y+2]!='@')
{
a[x][y+2]='o';
a[x][y+1]='s';
a[x][y]=' ';
y++;
f++;
}
if (a[x][y+1]!='o' && a[x][y+1]!='#' && a[x][y+1]!='@')
{
a[x][y+1]='s';
a[x][y]=' ';
y++;
f++;
}
}
if (a[4][1]=='o')
a[4][1]='@';
if (a[4][2]=='o')
a[4][2]='@';
if (a[4][3]=='o')
a[4][3]='@';
if (a[5][1]=='o')
a[5][1]='@';
if (a[5][2]=='o')
a[5][2]='@';
if (a[5][3]=='o')
a[5][3]='@';
if (a[4][1]!='@' && a[4][1]!='s')
a[4][1]='*';
if (a[4][2]!='@' && a[4][2]!='s')
a[4][2]='*';
if (a[4][3]!='@' && a[4][3]!='s')
a[4][3]='*';
if (a[5][1]!='@' && a[5][1]!='s')
a[5][1]='*';
if (a[5][2]!='@' && a[5][2]!='s')
a[5][2]='*';
if (a[5][3]!='@' && a[5][3]!='s')
a[5][3]='*';
system("cls");
}
puts("you are will!");
Re=fopen("Re.txt","r");
if (fscanf(Re,"%d",&e)>0)
{
if (f
{
fclose(Re);
Re=fopen("Re.txt","w");
fprintf(Re,"%d",f);
fclose(Re);
puts("新的记录已经产生了!");
}
if (f==e)
{
fclose(Re);
puts("与高手平举平起!");
}
if (f>e)
{
fclose(Re);
puts("请继续努力!");
}
}
else
{
fclose(Re);
Re=fopen("Re.txt","w");
fprintf(Re,"%d",f);
fclose(Re);
puts("新的记录已经产生了!");
}
system("pause");
return 0;
}