📄 migong.c
字号:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define q 23
char a[q][q];
int i,j;
void b(); //创建迷宫
int c(); //测试迷宫是否可行
void d(); //移动人'1'
void e(); //打印数组
void main()
{
printf("用w,a,s,d控制人'1'\t*********迷宫游戏*********\t作者:?凡人\n");
k: do{
b();
}
while(c()==1);
a[1][0]='1';
e();
d();
if(getch()=='y')
goto k;
else
printf("感谢使用Goodbye!!\n");
}
void b() //创建迷宫
{
for(i=0;i<q;i++)
for(j=0;j<q;j++)
if(rand()<16384)
a[i][j]=' ';
else a[i][j]='#';
for(i=0;i<q;i++)
a[i][0]=a[0][i]=a[i][q-1]=a[q-1][i]='#';
a[1][0]=a[q-2][q-1]=' ';
}
int c() //测试迷宫是否可行
{
int k=0;
i=1;
j=0;
do{
switch(k){
case 0:
if(a[i][j+1]==' ')
j++,k=3;
else
k=1;
break;
case 1:
if(a[i+1][j]==' ')
i++,k=0;
else
k=2;
break;
case 2:
if(a[i][j-1]==' ')
j--,k=1;
else
k=3;
break;
case 3:
if(a[i-1][j]==' ')
i--,k=2;
else
k=0;
break;
}
}
while((i!=1&&i!=(q-2))||(j!=0&&j!=(q-1)));
if(i==(q-2)&&j==(q-1))
return 0;
else
return 1;
}
void d() //移动人'1'
{
int m,n;
m=1;
n=0;
while(a[q-2][q-1]!='1'){
switch(getch()){
case 'w':
if(a[m-1][n]==' '){
a[m][n]=' ';
m--;
}
a[m][n]='1';
e();break;
case 's':
if(a[m+1][n]==' '){
a[m][n]=' ';
m++;
}
a[m][n]='1';
e();break;
case 'a':
if(a[m][n-1]==' '){
a[m][n]=' ';
n--;
}
a[m][n]='1';
e();break;
case 'd':
if(a[m][n+1]==' '){
a[m][n]=' ';
n++;
}
a[m][n]='1';
e();break;
}
}
printf("你真厉害!想再来吗?(y/n)\n");
}
void e() //打印数组
{
for(i=0;i<q;i++){
for(j=0;j<q;j++)
printf("%c",a[i][j]);
printf("\n");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -