c语言数字迷宫实训报告,【C语言】迷宫游戏设计思路与功能体会及简单的改进报告...

本文是一份关于C语言实现的数字迷宫游戏的设计报告,包括游戏功能、上机环境、各函数说明以及算法流程。游戏设有不同难度,玩家通过键盘控制小人走出迷宫。此外,作者分享了对程序的改进思路,如添加欢迎界面、调整迷宫难度等,以提升用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

迷宫游戏设计思路与功能体会及改进报告

学号:150809333

一、内容:

1、本游戏主要实现了人控制键盘方向键使小人(*)走出迷宫。

2、具有的功能:

1)、在游戏菜单里人可以选择不同难度的游戏进行游戏;

2)、在游戏过程中,可以通过键盘方向键使小人移动,走出迷宫;

3)、在游戏过程中,当人碰到墙壁(#)的时候小人过不去;

4)、当人顺利完成游戏之后,输出“========you arewin!======”字样,30秒钟后自动返回

到游戏菜单;

5)、在游戏过程中,人可以通过按Esc键返回游戏菜单;也可以可以按0直接退出游戏;

6)、在游戏菜单里,按0键可以退出游戏。

3、具体应用:

1)、人主要同过键盘的1,2,3数字键来选择游戏难度;

2)、在游戏中通过Esc键来返回菜单;

3)、同过0键退出游戏。

二、上机环境

操作系统:windows10

开发工具:C-Free

三、各函数功能说明

main()                          主函数;

menu()                         游戏菜单;

roadcake()                    消去小人路径;

introduce()                   游戏介绍;

system(“cls”)                消屏函数;

exit(0)                          退出游戏;

drawmg1()                   画简单难度迷宫;

drawmg2()                   画中等难度迷宫;

drawmg3()                   画困难难度迷宫;

control1()                     控制简单难度游戏;

control2()                     控制中等难度游戏;

control3()                     控制困难难度游戏;

四、算法流程图

首先定义三个全局数组mg1[20][20]、mg2[30][30]、mg3[30][30]用于画出迷宫的地图;1表示墙(#),0表示空地( );

Introduce( )函数里如果按Enter键,则调用menu()函数,从键盘中输入相应的提示数字,进入难度不同的游戏;游戏的执行在此只初级难度进行描述,其余的难度与其类似;

选了1后调用system(”cls”)进行清屏;drawmg1()函数进行迷宫的地图的绘制,for(i=0;i<20;i++)

{

printf("\t\t\t");

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

{

ch=mg1[i][j];

switch(ch)

{

case4: printf("*");break;

case0: printf(" ");break;

case1: printf("#");break;

}

if(num++%20==0)        /*每行只能输出20个字符*/

printf(”\n”);

}

}

之后调用控制函数control1()进行控制小人移动路径,在control1()函数里用do—while()语句进行循环,while(1)进行死循环,再定义四个整型a,b,m,n即:

for(n=0;n<30;n++)

for(m=0;m<30;m++)

if(mg3[n][m]==4)

{

a=n;        /*为后面调用roadcake()实现消除小人路径进行初始赋值*/

b=m;break;

}

用switch()语句选择方向键,在调用roadcake()函数进行消除小人路径

voidroadcake(int *i,int *j)

{

int temp;

temp=*i;               /*进行值交换,即数组值为0和值为4进行交换

*i=*j;

*j=temp;

}

完成第一个控制之后进行清屏和画新的游戏状态图,若在游戏进行中要退出游戏,只需按0键,调用exit(0)函数结束;若要返回游戏菜单,按Esc键掉用menu()函数即可,重复以上步骤,直达游戏结束,此时掉用menu()函数自动返回菜单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值