铝模板钉:简单的迷宫程序

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 17:57:14
在这些程序中
case UP:
if(map[man.y-1[man.x]=='#')
{
break;
}
Drawspace(man.x,man.y);
--man.y;
Drawman(man.x,man.y);
break;
为什么要这一条语句if(map[man.y-1[man.x]=='#')
而不用这条语句:if(map[man.x-1][man.y]=='#')

#include <stdio.h>
#include <bios.h>
#include <conio.h>
#define ESC 0x011b
#define UP 0x4800
#define DOWN 0x5000
#define LEFT 0x4b00
#define RIGHT 0x4d00

typedef struct
{
int x;
int y;
}point;
char map[10][20] =
{
"####################",
"# # #",
"# ######### # # #",
"# #### # ###",
"# # # # # # ##",
"# # #### # # # #",
"# # # # # #",
"# ##### # ## # #",
"# # #",
"####################"
};
Drawman(int x,int y)
{
gotoxy(x+10,y+5);
printf("%c\b",2);
}
Drawspace(int x,int y)
{
gotoxy(x+10,y+5);
printf(" ");
}
Drawwall(int x,int y)
{
gotoxy(x+10,y+5);
textcolor(GREEN);
putch(219);
}
void Drawmap() /* 设置#颜色 */
{
int x,y;
for(x=0;x<20;x++)
for(y=0;y<10;y++)
{
if(map[y][x]=='#')
{
Drawwall(x,y);
}
}
}
int main()
{
point man={1,1},des={18,8};
int key=0;
clrscr();
Drawmap();
textcolor(YELLOW); /*设置*背景颜色 */
gotoxy(des.x+10,des.y+5);
putch('*');
Drawman(man.x,man.y);
while(key!=ESC)
{
while(bioskey(1)==0);
key=bioskey(0);
switch(key)
{
case UP:
if(map[man.y-1][man.x]=='#')
{
break;
}
Drawspace(man.x,man.y);
--man.y;
Drawman(man.x,man.y);
break;
case DOWN:
if (map[man.y + 1][man.x] == '#')
{
break;
}

Drawspace(man.x, man.y);
++man.y;
Drawman(man.x, man.y);
break;
case LEFT:
if (map[man.y][man.x - 1] == '#')
{
break;
}

Drawspace(man.x, man.y);
--man.x;
Drawman(man.x, man.y);
break;
case RIGHT:
if (map[man.y][man.x + 1] == '#')
{
break;
}

Drawspace(man.x, man.y);
++man.x;
Drawman(man.x, man.y);
break;
defualt:
break;
}

if(man.x==des.x&&man.y==des.y)
{
gotoxy(35,3);
printf(" ok!!you are win!!!!");
getch();
key=ESC;
}
}
return 0;
}