linux、c语言贪吃蛇项目(七)——蛇身风骚走位之一直向右

         

今天的主题是:蛇身风骚走位之一直向右。

        在贪吃蛇游戏中,让蛇一直向右移动,听起来似乎是一件很简单的事情,但背后却蕴含了一系列有趣而复杂的编程逻辑。要实现这个功能,我们首先需要理解蛇的数据结构和移动原理。经过上一篇文章的阐述,我们可以了解到蛇身向右移动就是在蛇头部分加一,蛇尾部分减一从而实现向右移动,如果要实现一直向右,其实也很简单,我们可以尝试加一个循环语句,接下来我们看代码演示:

while(1){

}     //这是最简单的循环语句,我们在其中加入蛇身移动函数:

 while(1){

            MoveSnake();  //蛇身移动函数

            Gamepic();    //重新刷新地图

            refresh();//ncurses自带的刷新界面函数 花式走位;

            sleep(1); //我们可以吧蛇移动 的速度设置为1s当然如果觉得太慢了,也可以尝试用usleep

    }

这样我们就可以得到一个一直向右移动的蛇身了,完整的main函数代码如下:        

        当然,还有一点值得被考虑进去,就是咱们设置的游戏界面大小只有20*20这么大,一直向右移动可能最后就看不到蛇身了。所以我们可以设置一个围墙,当蛇不想活了,去撞墙找死,就重新回到起始位置,这样就可以实现贪吃蛇游戏里面的复活机制了,是不是逐渐开始有点意思了,好接下来,我们开整代码:

        看代码可以知道,我们只需要在蛇移动函数里面加一个判断语句就可以实现,当蛇头或者蛇尾(取决于你自己的设置)刚搞到达边界时,我们就直接重新画一个蛇身,回到起始位置。当然在这重新画蛇身之前我们需要进行一个清理内存的操作,否则这个游戏运行到最后会导致内存不足,清理内存操作如下所示:

        

在initSnake函数里面加入一个判断语句,在重新构建蛇身时, 判断head里面是否为空,如果是空的,直接进行后面的代码,若是重新复活的,里面的head肯定不为空,则去使用free去释放内存,其实很好理解,大家可以捋一捋其中的关系。将这些操作昨晚,就可以实现蛇身一直朝一个方向移动了。好了今天的内容就到这里了,一起加油哦~有看不懂的可以看一看我前面的文章~

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值