多关卡地图推箱子游戏
# include<stdio.h>
# include<conio.h>
# include<stdlib.h>
//调出地图
void file(int map[14][16],int n,int flag) //n表示关卡数 ,flag定位位置
{
FILE*fp=fopen("map.txt","r");
if(fp==NULL)
{
printf("文件读取错误\n");
}
else
for(int i=0 ;i<14 ;i++)
{ for(int j=0 ;j<16 ;j++)
{
map[i][j]=fgetc(fp);
}
fgetc(fp);
}
if(n<=9)
{
flag=257*(n-1)+5;//1~9关
}
else
{
flag=257*9+258*(n-10)+6;//10~43关定位关卡数
fseek(fp,flag,SEEK_SET);
}
fclose(fp) ;
}
//地图的生成
void drawmap(int map[14][16])
{
for( int i=0 ; i<14 ; i++)
{ for( int j=0 ; j<16 ; j++)
{
switch (map[i][j])
{
case '0':
printf(" ");//空地 打入两个空格
break;
case '1':
printf("■") ;//墙
break;
case '2':
printf(" ");//内部空地 打入两个空格
break;
case '3':
printf("×");//目的地
break;
case '4':
printf("◎");//箱子
break;
case '5':
printf("☆");//箱子推到目的地后的显示
break;
case '6':
printf("♀");//小人
break;
}
} printf("\n");
}
}
int main()
{ int N,FLAG;
int MAP[14][16];
printf("please input your level:%d\n");
scanf("%d",&N);
if(N>0&&N<=43)
{
file(MAP,N,FLAG);
drawmap(MAP);
}
else
printf("Game Over!\n");
return 0;
}