#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define N 11
int main()
{
void maze(int,int);//迷宫图。
FILE *fp;
int x=0,y=1,m=0,n=1,i,j;
int migong[N][N];
char w,a,s,d,t;
if((fp=fopen("E:\\file.txt","r"))==NULL)
{
printf("文件打开失败!\n");
exit(-1);
}
while(!feof(fp))
{
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
fscanf(fp,"%d ",&migong[i][j]);
fprintf(stdout,"%d ",migong[i][j]);
}
// fgetc(fp);
printf("\n");
}
}
maze(m,n);//调用并输出迷宫图 。
do
{
printf("请输入:w:上,s:下,a:左,d:右,q:退出!\n");
t=getch();
system("cls");//清屏。
switch(t)
{
case 'w'://上,x=x-1;
{
if(migong[x-1][y]==0)//如果该位置是通道,则移动★到该位置。
{
x--;
m--;
maze(m,n);
}
else
maze(m,n);
break;
}
case 'a'://左,y=y-1;
{
if(migong[x][y-1]==0)
{
n--;
y--;
maze(m,n);
}
else
maze(m,n);
break;
}
case 's'://下,x=x+1;
{
if(migong[x+1][y]==0)
{
m++;
x++;
maze(m,n);
}
else
maze(m,n);
break;
}
case 'd'://右,y=y+1;
{
if(migong[x][y+1]==0)
{
n++;
y++;
maze(m,n);
}
else
maze(m,n);
break;
}
case 'q'://退出。
{
printf("是否真的要退出,是,请按y键,否请按预先设置键继续游戏!!\n");
t=getch();
if(t=='y')
exit(0);
}
default:
{
maze(m,n);
puts("啪! 键按错了!!");
break;
}
}
if(x==10&&y==9)//胜利。
{
printf(" 【YOU WIN !!!】\n");
migong[10][9]=1;//为了结束循环。
}
}while(!migong[10][9]);
return 0;
}
void maze(int m,int n)//迷宫图。
{
FILE *fp;
int migong[N][N],i=0,j=1;
if((fp=fopen("E:\\file.txt","r"))==NULL)
{
printf("文件打开失败!\n");
exit(-1);
}
while(!feof(fp))
{
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
fscanf(fp,"%d ",&migong[i][j]);
fprintf(stdout,"%d ",migong[i][j]);
}
printf("\n");
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
if(migong[i][j]==1)
printf("█");
if(migong[i][j]==0)
{
if(i==m&&j==n)
printf("★");
else
printf(" ");
}
}
printf("\n");
}
}
fclose(fp);
}
纯C语言写的:迷宫游戏
最新推荐文章于 2024-02-03 08:07:54 发布