c语言编的迷宫小游戏

#include"stdio.h"
#include"bios.h"

#define LEFT 75
#define RIGHT 77
#define UPPER 72
#define DOWN 80
#define ESC 27

void print_welcome(void)
{
printf(" welcome to play!\n");
}
union keyboard /*定义读取键盘码的共用体类型*/
{
int iKey;
char chKey[2];
};

int GetKey(void) /*定义读取键盘码的函数*/
{
union keyboard Key1; /*定义读取键盘码的共用体变量*/
while(bioskey(1)==0); /*检测用户是否按键*/
Key1.iKey=bioskey(0); /*读取按键信息*/
return(Key1.chKey[0]==0?Key1.chKey[1]:Key1.chKey[0]); /*返回ASCII码或扩充码*/
}

void main()
{
int i,j;
int Key,x=36,y=13,tx=36,ty=13; /*x,y为人物移动后坐标,tx,ty为人物移动前坐标*/
int Map[10][10]={ /*用二维数组定义地图*/
/*0表示墙 1表示路 */
{1,1,1,1,1,1,1,1,1,1},
{1,0,0,0,0,1,0,0,0,1},
{1,0,1,1,0,0,0,1,0,0},
{1,0,0,1,1,1,1,1,1,1},
{1,0,1,1,0,0,1,1,0,1},
{1,0,0,0,1,0,0,0,0,1},
{1,1,1,0,1,1,1,0,1,1},
{1,0,0,0,1,0,0,0,1,1},
{1,0,1,0,0,0,1,0,0,1},
{1,1,1,1,1,1,1,1,1,1}
};
print_welcome();

while(1) /*反复进行求移动的坐标运算*/
{
for(i=0;i<10;i++) /*输出新地图(刷新地图)*/
{
gotoxy(35,5+i);
for(j=0;j<10;j++)
{
if(Map[i][j]==0) printf(" ");
if(Map[i][j]==1) printf("#");
}
}
gotoxy(x,y);
printf("%c\b",2);
tx=x; /*记录 本次移动前的坐标*/
ty=y;
Key=GetKey(); /*按读取的按键信息改变坐标如果改变的坐标和墙(0)重合则不改变*/
if(Key==LEFT &&Map[y-5][x-1-35]!=1) x--;
if(Key==RIGHT&&Map[y-5][x+1-35]!=1) x++;
if(Key==UPPER&&Map[y-1-5][x-35]!=1) y--;
if(Key==DOWN &&Map[y+1-5][x-35]!=1) y++;
if(x==44&&y==7)
{
clrscr();
gotoxy(35,10);
printf("You Win!");
break;
}

if(Key==ESC) /*输入ESC退出并输出"YOU LOST"*/

{
clrscr();
gotoxy(35,10);
printf("You Lost!");
break;
}
}
getch();
}

上面是一段本人找的迷宫小游戏 , 可是实践要求必须加入自己的元素 , 我想加入一个第二关卡.请高手帮助下.谢谢.!!真正会的人来

第1个回答  2009-07-11
这个Source并不完整, 可否将 stdio.h & bios.h 的内容一并放上, 以便回答.