100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > c语言迷宫游戏课程设计 迷宫游戏c语言程序课程设计.docx

c语言迷宫游戏课程设计 迷宫游戏c语言程序课程设计.docx

时间:2021-03-05 07:58:37

相关推荐

c语言迷宫游戏课程设计 迷宫游戏c语言程序课程设计.docx

迷宫游戏

/*乌云老师的话:学习检测键盘信息之后,余文彪同学当堂就作岀了通过键盘在屏幕上下左右移动一

个星星的程序。

老师给几位同学大略说了一下迷宫游戏的实现思路,彭搏同学下次课就把做好的迷宫游戏

拿出来了,wonderful!

思路分明,代码简练,注释清晰,只得大家学习。

同时他还实现了一个简单推箱子游戏,可谓程序快手了。

*/

#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 iKeylnfo; char chKeyBit[2];

};

int fnGetKey(void)

{

union keyboard uniKeyl; while(bioskey(1)==0); uniKey1.iKeylnfo=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)

prin tf("#");

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

printf("");

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

prin tf("E");

}

}

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

clrscr();

printf("You Win!");

break;

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

gotoxy(x,y);

printf("*\b");

(0)重合则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();

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。