77范文网 - 专业文章范例文档资料分享平台

C语言迷宫游戏(3)

来源:网络收集 时间:2019-03-16 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

case Wall:

printf(\画墙 case Road:

printf(\画路 }

然后就应该能理解了这部分是怎么做到的

接下来我们看最后一个函数void game() //游戏相关操作

void game() {

int x=2,y=1; //玩家当前位置,刚开始在入口处 int c; //用来接收按键 while(1) {

gotoxy(2*y-2,x-1); //这里的含义是到达入口处 printf(\☆\画出玩家当前位置

if(map[x][y]==End) //判断是否到达出口 {

gotoxy(30,24);

printf(\到达终点,按任意键结束\getch(); break; }

c=get_key(); if(c==Esc) {

gotoxy(0,24); break; }

switch(c) {

case Up: //向上走 if(map[x-1][y]!=Wall) {

paint(x,y); x--; }

break;

case Down: //向下走 if(map[x+1][y]!=Wall) {

paint(x,y); x++;

}

break;

case Left: //向左走 if(map[x][y-1]!=Wall) {

paint(x,y); y--; }

break;

case Right: //向右走 if(map[x][y+1]!=Wall) {

paint(x,y); y++; }

break; } } }

事实上这个函数也不是很难理解 所有函数除了算法部分都不难理解,就看用不用心去读代码了

就像注释那样, gotoxy(2*y-2,x-1); 到达入口处 用☆当玩家,然后先进行判断是否到达终点,如果达到终点或按ESC则结束游戏,负责就开始接受按键,进行移动,说是移动实际上就是不断变化 map[x][y] x和y的值 并进行判断是否到达终点,按下ESC如果没有则根据 x++ x-- y++ y-- 来进行上下左右后改变所在二维数组中的位置 打个比方

a[2][2]

分别有a[0][0]a[0][1] 11

a[1][0]a[1][1] 21 如果处在2的位置 那么按下上 也就是说数组元素a[1][0]变成了a[0][0] 如果用 这里用a[x][y]来进行表示,那么就是等于x--;其他同理

未来未来

10

最后我们来看一下main函数

int main() { int i,j;

srand((unsigned)time(NULL)); //初始化随即种子 hidden(); //隐藏光标

for(i=0;i<=Height+1;i++) for(j=0;j<=Width+1;j++)

if(i==0||i==Height+1||j==0||j==Width+1) //初始化迷宫 map[j]=Road; else map[j]=Wall;

create(2*(rand()%(Height/2)+1),2*(rand()%(Width/2)+1)); //从随机一个点开始生成迷宫,该点行列都为偶数

for(i=0;i<=Height+1;i++) //边界处理 {

map[0]=Wall;

map[Width+1]=Wall; }

for(j=0;j<=Width+1;j++) //边界处理 {

map[0][j]=Wall;

map[Height+1][j]=Wall; }

map[2][1]=Start; //给定入口

map[Height-1][Width]=End; //给定出口

for(i=1;i<=Height;i++)

for(j=1;j<=Width;j++) //画出迷宫

paint(i,j);

game(); //开始游戏 getch(); return 0; }

先是srand来初始化随机种子 为create打下基础

然后给map赋值 输出后成四面全是墙,中间全是路的 也就是000 010

000 //0是墙,1是路 这样

然后用create生成正式的迷宫,根据rand来随机生成路线

之后重新处理边界,以及定义入口点和出口点 ,可以试着删掉 for(i=0;i<=Height+1;i++) //边界处理 {

map[0]=Wall;

map[Width+1]=Wall; }

for(j=0;j<=Width+1;j++) //边界处理 {

map[0][j]=Wall;

map[Height+1][j]=Wall; }

这段 如果在入口处按左,你会发现BUG了!! 删掉这两段

map[2][1]=Start; //给定入口

map[Height-1][Width]=End; //给定出口

导致你一旦从入字走出,就再也走出不迷宫

最后使用print函数 根据数组元素的值 画出迷宫. 用game进行游戏循环并判断游戏是否结束

EAgleLeo

...又来一遍,,,, |

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言迷宫游戏(3)在线全文阅读。

C语言迷宫游戏(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/524649.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: