里加一列为1_c语言贪吃蛇详解1.画出地图

28162f1637feb33a1ab8495fdae24b5c.png

首先我们使用宏定义来定义两个常数,地图的高(H)和地图的宽(W)

#define H 20
#define W 20

这样写的好处是以后改变地图的大小就不用更改写好的代码了,只要修改下宏定义。节省了时间又避免改出bug

接下来,我们定义一个二维数组,这个二维数组的每一个值刚好对应了平面的每一个点,这样就可以方便地自定义地图了。可以设置障碍物什么的了。然后我们用数组a[H][W]来存储地图情况,如果a[i][j]==0,就说明第i+1行,第j+1列是空的,如果a[i][j]==1,就说明这个点是障碍物
然后我们使用下面的代码来把地图数组的边框做出来,就是让数组边缘等于1。(int全局变量默认为0)。

1 void init()
 2 {
 3     int i,j;
 4     for(i=0; i<H; i++)
 5     {
 6         a[i][0]=1;          //让第一列为1
 7         a[i][W-1]=1;        //让最后一列为1
 8     }
 9     for(j=0; j<W; j++)
10     {
11         a[0][j]=1;          //让第一行为1
12         a[H-1][j]=1;        //让最后一行为1
13     }
14 }

这个只是最简单的地图,如果你有其他想法可以自由发挥,画出自己的地图。

地图画好了,剩下的就是画出地图了。我们把画地图的过程也写为一个函数,这样能使代码结构更清晰,更容易找出bug。画地图就简单了,就是遍历整个数组,然后值为0的地方输出空格,值为1的地方输出一个符号,符号按自己喜好,我这里使用了#。

3eeaf8c360da770b8343d51d772ce024.png

然后我们发现长宽不合适,我们可以修改刚开始的H和W的值。

按自己喜好调整,比如这样

#define H 23
#define W 75

然后看看是不是比刚才好看了。知道宏定义的好处了吧。

8c375380bd372e7a70bcfd68b35fcf08.png

好了,到这里为止,我们已经学会了画地图。

这只是最简单的地图,通过修改地图数组,我们就能做出很多不一样的地图。

下面附上第一步的完整代码。

#include <stdio.h>
#include <stdlib.h>
#define H 23
#define W 75

int a[H][W];        //地图数组

void init()         //程序开始时的初始化操作
{
    int i,j;
    for(i=0; i<H; i++)
    {
        a[i][0]=1;          //让第一列为1
        a[i][W-1]=1;        //让最后一列为1
    }
    for(j=0; j<W; j++)
    {
        a[0][j]=1;      //让第一行为1
        a[H-1][j]=1;    //让最后一行为1
    }
}

void drawMap()      //画地图
{
    int i,j;
    for(i=0;i<H;i++)
    {
        for(j=0;j<W;j++)            //两重for循环遍历数组
        {
            if(a[i][j]==0)          //为0输出空格
                printf(" ");
            else                    //为1输出#
                printf("#");
        }
        printf("n");               //别忘了换行
    }
}

int main()
{
    init();
    drawMap();
    return 0;
}

学习资料分享交流群:910975213 入群有全套学习视频资料电子书免费赠送!

资料:

物联网开发入门直播课 - 嵌入式/物联网-C语言编程基础​www.makeru.com.cn C语言_嵌入式​www.makeru.com.cn
323fa911b4296b658d63e0535024d41a.png
嵌入式开发直播课 - 带你提升C编程能力​www.makeru.com.cn
f6067de489f43a0377e3ed77b4eb308e.png
嵌入式底层开发 - 夯实C语言,从小白到大牛的进阶之路!​www.makeru.com.cn
f6067de489f43a0377e3ed77b4eb308e.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值