我的无限迷宫完成了:
各位小伙伴来看看
int main()
{
system("color f4");
puts("走出去吧:\nw上 a左 s下 d右");
Sleep(1000);
system("cls");
x=2,y=2;
remove(x,y);
}
是不是很简单。
开玩笑的啦,
remove代码
int remove(int x,int y)
{
char ch;
print(mg);
while(x<5 && y<5 && x>-1 && y>-1)
{
ch=getch();
if(ch=='s')
{
if(mg[x+1][y]!='#')
{
mg[x][y]=' ';
x++;
mg[x][y]='o';
}
}
if(ch=='w')
{
if(mg[x-1][y]!='#')
{
mg[x][y]=' ';
x--;
mg[x][y]='o';
}
}
if(ch=='a')
{
if(mg[x][y-1]!='#')
{
mg[x][y]=' ';
y--;
mg[x][y]='o';
}
}
if(ch=='d')
{
if(mg[x][y+1]!='#')
{
mg[x][y]=' ';
y++;
mg[x][y]='o';
}
}
system("cls");
print(mg);
}//控制移动
//接下来就是无限了
system("cls");//为下次地图做准备
//开始循环
if(x==2 && y==-1)
{
y+=5;
mg[x][y]='o';
mg[1][5]='\0';//阻止乱码,个人水平有限
}
if(x==2 && y==5)
{
y-=5;
mg[x][y]='o';
mg[2][5]='\0';//阻止乱码,个人水平有限
}
if(x==-1 && y==2)
{
x+=5;
mg[x][y]='o';
}
if(x==5 && y==2)
{
x-=5;
mg[x][y]='o';
}
remove(x,y);
}
这是***精髓***,可以好好看看哦。
声明和打印地图函数:
#include<stdio.h>//无限迷宫,全局变量
#include<conio.h>
#include<windows.h>
int x,y,i;
static char mg[5][6]=
{
{
" # # "},
{
"## ##"},
{
" O "},
{
"## ##"},
{
" # # "}
};
void print(char mg[5][6])
{
putchar('\n');
for(i=0;i<5;i++)
printf("\t%s\n",mg[i]);
putchar('\n');
}
全部代码如下:
#include<stdio.h>//无限迷宫,全局变量
#include<conio.h>
#include<windows.h>
int x,y,i;
static char mg[5][6]=
{
{
" # # "},
{
"## ##"},
{
" O "},
{
"## ##"},
{
" # # "}
};
void print(char mg[5][6])
{
putchar('\n');
for(i=0;i<5;i++)
printf("\t%s\n",mg[i]);
putchar('\n');
}
int remove(int x,int y)
{
char ch;
print(mg);
while(x<5 && y<5 && x>-1 && y>-1)//控制移动
{
ch=getch();
if(ch=='s')
{
if(mg[x+1][y]!='#')
{
mg[x][y]=' ';
x++;
mg[x][y]='o';
}
}
if(ch=='w')
{
if(mg[x-1][y]!='#')
{
mg[x][y]=' ';
x--;
mg[x][y]='o';
}
}
if(ch=='a')
{
if(mg[x][y-1]!='#')
{
mg[x][y]=' ';
y--;
mg[x][y]='o';
}
}
if(ch=='d')
{
if(mg[x][y+1]!='#')
{
mg[x][y]=' ';
y++;
mg[x][y]='o';
}
}
system("cls");
print(mg);
}
system("cls");//为下次地图做准备
//开始循环
if(x==2 && y==-1)
{
y+=5;
mg[x][y]='o';
mg[1][5]='\0';//阻止乱码,个人水平有限
}
if(x==2 && y==5)
{
y-=5;
mg[x][y]='o';
mg[2][5]='\0';//阻止乱码,个人水平有限
}
if(x==-1 && y==2)
{
x+=5;
mg[x][y]='o';
}
if(x==5 && y==2)
{
x-=5;
mg[x][y]='o';
}
remove(x,y);
}
int main()
{
system("color f4");
puts("走出去吧:\nw上 a左 s下 d右");
Sleep(1000);
system("cls");
x=2,y=2;
remove(x,y);
}
一共一百行哦,凑个整数好看,嘻嘻。