初学C语言!写的迷宫小游戏!
刚学不久!没事写了个小小小游戏!程序虽然写的很不专业!但还是在努力下完成了!以下在WIN-TC下测试可用!
#include<stdio.h>
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define ESC 0x011b
/*--------------------------迷宫地图-------------------------*/
int horizontal=1,vertical=0;
;
int length=20,width=70;
int person=2,map[20][70]={
{'#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#'},
{ 2 ,' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#','#'},
{'#',' ','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#',' ','#',' ','#','#','#','#','#','#','#',' ','#',' ','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#',' ','#'},
{'#',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#',' ','#','#',' ',' ',' ',' ','#',' ','#',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#','#','#',' ','#'},
{'#',' ','#',' ','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#',' ','#','#',' ','#',' ','#','#',' ',' ',' ','#',' ','#','#','#','#','#','#','#','#','#','#','#','#',' ','#','#','#','#','#','#','#','#','#','#','#','#','#',' ','#','#','#',' ','#'},
{'#',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#','#',' ','#',' ','#','#','#','#','#','#',' ','#','#',' ',' ',' ',' ',' ',' ',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#',' ',' ',' ','#',' ','#'},
{'#',' ','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#',' ','#',' ',' ',' ',' ',' ',' ',' ',' ','#','#',' ','#','#','#','#','#','#','#',' ','#','#','#','#','#','#','#','#','#','#','#','#','#',' ','#','#','#','#','#',' ','#'},
{'#',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#',' ','#',' ','#','#','#','#','#','#','#',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#',' ','#',' ',' ',' ','#',' ','#'},
{'#',' ','#',' ','#',' ','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#',' ','#',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ','#','#','#',' ','#','#','#','#','#','#','#',' ','#','#','#','#','#','#','#','#','#',' ','#',' ','#',' ','#',' ','#',' ','#'},
{'#',' ','#',' ','#',' ','#',' ',' ',' ',' ',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#',' ','#',' ','#','#','#','#','#','#','#','#','#','#','#','#','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#',' ',' ',' ','#','#','#',' ','#'},
{'#',' ','#',' ','#',' ',' ',' ','#',' ','#','#','#',' ','#',' ','#','#','#','#','#','#','#','#',' ','#',' ',' ',' ','#','#','#',' ',' ',' ','#',' ',' ',' ',' ',' ','#','#','#','#','#',' ','#','#','#','#','#','#','#','#','#','#','#','#',' ',' ','#','#','#','#','#','#','#',' ','#'},
{'#',' ','#',' ','#','#','#','#','#','#','#','#',' ',' ','#',' ','#',' ',' ',' ',' ','#','#','#',' ','#','#','#','#','#','#','#',' ','#',' ','#',' ','#','#','#',' ','#',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#','#','#',' ','#'},
{'#',' ','#',' ','#',' ',' ',' ',' ',' ',' ','#',' ','#','#',' ','#',' ','#','#',' ','#','#','#',' ',' ',' ',' ',' ','#','#','#',' ','#',' ',' ',' ','#',' ','#',' ','#',' ','#',' ','#',' ','#','#','#','#','#','#','#','#','#','#','#','#',' ','#','#','#','#',' ',' ',' ','#',' ','#'},
{'#',' ','#',' ','#',' ','#','#','#','#',' ','#',' ',' ',' ',' ','#',' ',' ','#',' ','#','#','#','#','#','#','#','#',' ',' ',' ',' ','#','#','#','#',' ',' ','#',' ','#',' ','#',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#','#','#','#','#','#','#','#',' ','#'},
{'#',' ','#',' ','#',' ',' ',' ',' ','#',' ','#','#','#','#','#','#','#',' ','#',' ','#','#','#','#','#','#','#','#',' ','#','#',' ','#','#','#','#',' ','#','#',' ','#',' ','#',' ','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#',' ',' ',' ',' ',' ','#',' ','#'},
{'#',' ','#',' ','#','#','#','#',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#','#',' ',' ',' ',' ',' ',' ','#','#',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#','#','#','#','#',' ','#'},
{'#',' ','#',' ',' ',' ',' ',' ',' ','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#',' ',' ',' ',' ','#',' ','#'},
{'#',' ','#','#','#','#','#','#','#',' ',' ',' ','#',' ',' ',' ','#',' ',' ',' ','#',' ',' ',' ','#',' ',' ',' ',' ','#',' ',' ',' ','#','#','#','#','#','#','#','#',' ',' ',' ','#',' ',' ',' ','#',' ',' ',' ','#','#','#',' ',' ',' ','#','#','#','#','#',' ','#','#',' ','#',' ','#'},
{'#',' ',' ',' ',' ',' ',' ',' ',' ',' ','#',' ',' ',' ','#',' ',' ',' ','#',' ',' ',' ','#',' ',' ',' ','#','#',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#',' ',' ',' ','#',' ',' ',' ','#',' ',' ',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','*'},
{'#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#'}
};
/*------------------------------------------------------------*/
void execute();/*执行函数声明*/
void maps(); /*地图函数声明*/
void interface_main();/*主界面*/
void interface_options();/*胜利语*/
void interface_last(); /*退出语*/
void up(); /*向上执行函数声明*/
void down(); /*向下执行函数声明*/
void left(); /*向左执行函数声明*/
void right(); /*向右执行函数声明*/
void soul(); /*灵魂函数声明*/
void main() /*主函数*/
{
/* interface_main();
maps();
*/
execute(); /*执行方向操作函数调用*/
maps();
interface_last(); /*退出语*/
getch();
}
void interface_main() /*主界面函数*/
{
printf("--------------wlecome use----------------\n");
printf(" time 09.07.20 \n");
printf(" author snoopy \n");
printf("ESC(shut)\n");
}
void interface_options() /*胜利语*/
{
printf("congratulate pass a test ! ! ! ^-^");
getch();
exit(0);
}
void interface_last() /*退出语*/
{
printf("good bay ! ! ! ^-^");
}
void execute() /*方向执行函数*/
{
int key;
do
{
system("cls");
interface_main();
maps();
key=bioskey(0);
system("cls");
interface_main();
if(key==UP||key=='8') /*当按上按键时执行返回值为1*/
{
up(); /*调用上方向执行函数*/
}
if(key==DOWN)
{
down();
}
if(key==LEFT)
{
left();
}
if(key==RIGHT)
{
right();
}
soul(); /*调用灵魂函数*/
}while(key!=ESC);
}
void maps() /*迷宫输出函数*/
{
int i,j;
for(i=0;i<length;i++)
{
printf(" ");
for(j=0;j<width;j++)
{
printf("%c",map[i][j]);
}
printf("\n");
}
}
void up() /*上方向执行函数*/
{
int t;
if(map[horizontal-1][vertical]=='*') /*当即将要走到得地方为‘*‘时则返回1*/
{
map[horizontal-1][vertical]=map[horizontal][vertical];
map[horizontal][vertical]=' ';
maps();
interface_options();
}
if(map[horizontal-1][vertical]==' ')
{
horizontal=horizontal-1;
t=map[horizontal][vertical];
map[horizontal][vertical]=map[horizontal+1][vertical];
map[horizontal+1][vertical]=t;
}
maps();
}
void down() /*下方向执行函数*/
{
int t;
if(map[horizontal+1][vertical]=='*')
{
map[horizontal+1][vertical]=map[horizontal][vertical];
map[horizontal][vertical]=' ';
maps();
interface_options();
}
if(map[horizontal+1][vertical]==' ')
{
horizontal=horizontal+1;
t=map[horizontal][vertical];
map[horizontal][vertical]=map[horizontal-1][vertical];
map[horizontal-1][vertical]=t;
}
maps();
}
void left() /*左方向执行函数*/
{
int t;
if(map[horizontal][vertical-1]=='*')
{
map[horizontal][vertical-1]=map[horizontal][vertical];
map[horizontal][vertical]=' ';
maps();
interface_options();
}
if(map[horizontal][vertical-1]==' ')
{
vertical=vertical-1;
t=map[horizontal][vertical];
map[horizontal][vertical]=map[horizontal][vertical+1];
map[horizontal][vertical+1]=t;
}
maps();
}
void right() /*右方向执行函数*/
{
int t;
if(map[horizontal][vertical+1]=='*')
{
map[horizontal][vertical+1]=map[horizontal][vertical];
map[horizontal][vertical]=' ';
maps();
interface_options();
}
if(map[horizontal][vertical+1]==' ')
{
vertical=vertical+1;
t=map[horizontal][vertical];
map[horizontal][vertical]=map[horizontal][vertical-1];
map[horizontal][vertical-1]=t;
}
maps();
}
void soul()
{
if(map[18][63]==2)
{
map[18][67]='#';
}
if(map[18][65]==2)
{
map[18][64]='#';
map[1][68]=' ';
}
if(map[18][58]==2)
{
map[18][67]=' ';
map[18][64]=' ';
}
if(map[16][68]==2)
{
map[15][68]='#';
map[4][68]='#';
}
if(map[18][68]==2)
{
map[18][69]='#';
map[5][69]='*';
map[5][67]=' ';
map[11][2]=' ';
}
if(map[5][65]==2)
{
map[5][67]='#';
map[9][67]=' ';
map[9][66]=' ';
}
if(map[9][66]==2)
{
map[9][67]='#';
map[14][67]=' ';
}
if(map[15][28]==2)
{
map[14][29]='#';
map[12][29]=' ';
}
if(map[12][36]==2)
{
map[10][36]='#';
map[11][38]=' ';
}
if(map[14][67]==2)
{
map[12][67]=' ';
map[13][68]='#';
}
if(map[7][59]==2)
{
map[7][60]='#';
}
if(map[9][58]==2)
{
map[9][59]='#';
}
if(map[13][58]==2)
{
map[12][59]='#';
}
if(map[12][67]==2)
{
map[5][69]='#';
map[1][0]='*';
}
}