贪吃蛇的制作过程中遇到的一些小问题

本文介绍了制作贪吃蛇游戏的过程,包括界面设计、蛇的坐标定义、蛇的运动逻辑、转弯实现、食物生成及游戏结束条件。通过改变地图上的字符实现蛇的移动,利用随机函数生成食物坐标,并在吃到食物时增长蛇的长度。游戏结束条件是蛇头碰到墙壁或自身身体。
摘要由CSDN通过智能技术生成

第一步是界面的设计
首先定义一个二维数组,做出一个17*17的方阵,每个二维数组map的坐标就是方阵中的坐标,然后我们用’‘和‘ ’空格,来定义这些字符,构成一个图形界面,这个就是贪吃蛇的活动框即活动范围,如果蛇头碰到墙壁即‘’则游戏结束。
如下图

定义好界面,并printf之后,定义蛇的坐标,定义结构体struct snake,代表蛇身蛇头的坐标,并把map地图上对应坐标的字符定义为’X’(蛇身)或‘H’(蛇头),初始化蛇的长度为5.
然后接下来就遇到困难了,怎么蛇运动呢?
下面是代码

void food() {  //生成食物
    int x, y;
    while (1) {
        x = (int)(15 * rand() / (RAND_MAX + 1.0));  //随机产生一组食物坐标
        y = (int)(15 * rand() / (RAND_MAX + 1.0));
        if (map[x][y] == ' ') {  //如果是空格则在该处生成食物
            map[x][y] = 'O';
            //foodx = x;  //记录食物坐标 
            //foody = y;
            break;
        }
    }
}


void move() {  //蛇移动
    
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值