linux、c语言贪吃蛇项目(四)——蛇身拉长

        上一个文章提到了怎么将蛇身设置出来,这一篇文章我们来讲一下怎么将蛇身拉长,毕竟蛇身就一个【】也不是那么的好看,一点蛇样也没有。

        假设我们蛇身有【】【】【】三个中括号这么长,当然在代码中这些个中括号得是英文状态下的,首先我们定义三个结构体类型的变量。

struct Snake{

    int hang;

    int lie;

    struct Snake *next;

};

struct Snake snake1 = {2,2,NULL};

struct Snake snake2 = {2,3,NULL};

struct Snake snake3 = {2,4,NULL};

 这里可能就有人要问了,为什么要这么定义,首先蛇肯定是在一条水平线上,或者是在一条竖线上,总不可能开始就给他设置成歪歪扭扭的,当然也不是不可以,法律允许,但不推荐,不太美观。上一篇文章提到,假设蛇的头在{2,2}处,我们就定行动列,将蛇的坐标定位{2,2}、{2,3}、{2,4}这三个点,问题就是我们怎么将三段蛇身连接起来?一个一个的用if去判断吗?那一点也不美观,我们是专业人员,就得用专业的办法。

        上一篇文章提到了构建一个函数,同理我们可以将函数的代码转换一下,并且实现遍历,就能将蛇身完美打印,代码如下:

int GetSnake(int i,int j){

    struct Snake *p;

    p = &snake1;

    while(p != NULL){  //判断蛇身下一个是否为空,空的就停止循环

         if(p->hang == i && p->lie == j){

             return 1;

            }

            p= p->next;

    }

    return  0;

}

这样我们就可以得到三个蛇身,实现蛇身的初始化,并且指定蛇的位置在(2,2)坐标处。

完整代码如下:

代码输出的结果如图所示:

好了,今天这篇文章的内容到这了,快去行动起来吧~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值