c 实现走迷宫流程图_C语言走迷宫游戏流程图和代码框架

这是一个使用C语言编写的走迷宫游戏程序。通过键盘输入控制角色移动,当角色到达出口时显示"You Win!",如果按下ESC键则显示"You Lost"并退出游戏。游戏地图由二维数组表示,墙用'#'表示,路径用空格表示,出口用'E'表示。程序包含键盘事件处理和地图刷新功能。
摘要由CSDN通过智能技术生成

源代码#include"stdio.h"#include"bios.h"#defineLEFT75#defineRIGHT77#defineUPPER72#defineDOWN80#defineESC27unionkeyboard/*定义读取键盘码的共用体类型*/{unsignedintiKeyInfo;c...

源代码

#include"stdio.h"

#include"bios.h"

#define LEFT 75

#define RIGHT 77

#define UPPER 72

#define DOWN 80

#define ESC 27

union keyboard /*定义读取键盘码的共用体类型*/

{

unsigned int iKeyInfo;

char chKeyBit[2];

};

int fnGetKey(void) /*定义读取键盘码的函数*/

{

union keyboard uniKey1; /*定义读取键盘码的共用体变量*/

while(bioskey(1)==0)

{

;

} /*反复检测用户是否按键*/

uniKey1.iKeyInfo=bioskey(0); /*读取按键信息*/

return(uniKey1.chKeyBit[0]==0?uniKey1.chKeyBit[1]:uniKey1.chKeyBit[0]); /*返回ASCII码或扩充码*/

}

void main()

{

int iKey,x=11,y=6; /*x,y为人物移动后坐标*/

int chMap[10][10]={ /*用二维数组定义地图*/

{0,0,0,0,0,0,0,0,0,0}, /*0表示墙1表示路2表示出口*/

{0,1,0,0,1,1,1,1,1,0},

{0,1,1,0,1,0,1,0,1,0},

{0,0,1,0,1,0,1,0,1,0},

{0,0,1,1,1,0,0,0,1,0},

{0,0,0,0,0,0,1,1,1,0},

{0,1,0,0,1,1,1,0,0,0},

{0,1,1,1,1,0,0,0,2,0},

{0,1,0,0,1,1,1,1,1,0},

{0,0,0,0,0,0,0,0,0,0},

};

int i,j; /*反复进行求移动的坐标运算*/

while(1)

{

for(i=0;i<10;i++) /*输出新地图(刷新地图)*/

{

gotoxy(10,5+i);

for(j=0;j<10;j++)

{

if(chMap[i][j]==0)

{

printf("#");

}

if(chMap[i][j]==1)

{

printf(" ");

}

if(chMap[i][j]==2)

{

printf("E");

}

}

}

if(chMap[y-5][x-10]==2) /*如果如果人的坐标和目标坐标重合输出"YOU WIN!"退出*/

{

clrscr();

printf("You Win!");

break;

} /*在起始(或移动后)的坐标输出人*/

gotoxy(x,y);

printf("*\b");

iKey=fnGetKey(); /*按读取的按键信息改变坐标如果改变的坐标和墙(0)重合则不改变*/

if(iKey==LEFT&&chMap[y-5][x-1-10]!=0)

{

x--;

}

if(iKey==RIGHT&&chMap[y-5][x+1-10]!=0)

{

x++;

}

if(iKey==UPPER&&chMap[y-1-5][x-10]!=0)

{

y--;

}

if(iKey==DOWN&&chMap[y+1-5][x-10]!=0)

{

y++;

}

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

{

clrscr();

printf("You Lost");

break;

}

clrscr();

}

getch();

}

知道的流程图和代码框架怎么弄的,发我邮箱里面:zilinpiao@163.com很急,在星期一之前就要用,麻烦各位了

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值