C语言迷宫游戏

C语言迷宫游戏

这篇文章是给学完并学懂了C语言的分支(选择和循环)结构和二维数组的朋友看的。

要做一个游戏或者程序先要想好有那些要求,以下是我认为一个迷宫必带的要求: 

  1. 迷宫要先打印出来(要设置墙、空气、小球的起点),是墙就不能,是空气就可以走。
  2. 每次输入'w'、'a'、's'、'd'为上、左、下、右,并每次输入后,不用按回车或任意键继续就能输出,每次走一步(按键盘的键走)后,先清屏再输出现在迷宫以及小球现在在哪里。
  3. 要有起点和终点的X、Y轴,如果小球与终点的位置相同了,就提示胜利并退出游戏。 

定义地图

首先我们要打印出地图,因为地图有长和宽的长度,所以我们要用二维数组来定义一个地图,代码如下:

    char map[50][50]={
                    "######",//申请50*50的二维字符串当迷宫地图,但这里是6*6的地图
                    "#O #  ",//'#'是墙(不可以走的地方)
                    "# ## #",//'O'是起点(可控制)
                    "#  # #",//' '是空气(可以走的地方)
                    "##   #",
                    "######",//横竖都是012345,012345(数组下标从0开始)
                    };

打印地图方法一

定义完二维数组,就要把它打印出来,代码如下:

int i,j;
for(i=0;i<6;i++)//i循环用来控制打印地图的行数
{
    for(j=0;j<6;j++)//j循环用来控制打印地图的列数
    {
        printf("%c",map[i][j]);//打印每次i和j的行数和列数
    }
    printf("\n");//一行打印完毕需要换行
}

打印地图方法二

上面这段代码是通过双重循环打印出地图的每行每列。

如果学过puts函数来输出字符数组的朋友可以这样写,代码如下:

int i;
for(i=0;i<6;i++)//从0到5,共进行了6次循环,依次输出迷宫的第0至5行
    puts(map[i]);//表示输出每一行的字符串

是不是简单了许多,不懂puts函数的朋友也没关系,你用第一种方法就行,对于puts函数你只需要知道:

  1. 使用 puts() 显示字符串时,系统会自动在其后添加一个换行符。
  2. 只有遇到 '\0' 也就是字符串结束标志符才会停止。

定义起点和终点位置

然后再定义起点和终点的X、Y轴位置(当然上面定义二维数组时已经看得出来了),代码如下:

​int x,y,p,q;//x,y为小球(起点"O")初始位置竖横轴 
            //p,q为空白(终点" ")结束位置竖横轴
x=1;y=1;//x为竖轴初始位置为1,y为初始横轴位置为1
p=1;q=5;//p为竖轴结束位置为1,q为结束横轴位置为5

总结以上代码

目前为止,我们做了定义地图、打印地图、定义起点终点的X、Y轴,目前全部代码如下:

#include<stdio.h>//printf("");的头文件
#include<stdlib.h>//system("");的头文件
#include<Windows.h>//Sleep();的头文件
int m1ain(void)
{
    char map[50][50]={
                        "######",//申请50*50的二维字符串当迷宫地图,但这里是6*6的地图
                        "#O #  ",//'#'是墙(不可以走的地方)
                        "# ## #",//'O'是起点(可控制)
                        "#  # #",//' '是空气(可以走的地方)
                        "##   #",
                        "######",//横竖都是012345,012345(数组下标从0开始)
                        };
    int i,x,y,p,q;//x,y为小球(起点"O")初始位置竖横轴 
                  //p,q为空白(终点" ")结束位置竖横轴
    int ch;//申请需要输入的字符(名称是ch),当移动(w,a,s,d)
    x=1;y=1;p=1;q=5;//x为竖轴初始位置为1,y为初始横轴位置为1
                    //p为竖轴结束位置为1,q为结束横轴位置为5
    for(i=0;i<6;i++)//从0到5,共进行了6次循环,依次输出迷宫的第0至5行
        puts(map[i]);//表示输出每一行的字符串
    Sleep(5000);//上面代码全部执行完毕后过五秒自动关闭程序
    return 0;
}

现在我们就要想办法控制小球了,这里利用键盘上的'w''s''a''d'四个键来控制这个小球进行上、下、左、右移动,当然你如果喜欢,也可以用别的按键。

第一步:先来控制小球向下移动

评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学编程的闹钟

自愿打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值