linux、c语言贪吃蛇项目(五)——引用struct拉长蛇身

        上一篇文章提到,怎么将蛇身给拉长,我们采用的是循环加判断的方式,如果坐标刚好等于我们扫描到的坐标,我们就将这个坐标处的值复制为【】从而实现拉长蛇身的目的。这个方法可以使用,但是土,太土了,而且并不方便于我们后续蛇吃了食物之后蛇身的拉长,所以这一章讲述了运用shruct的方式将蛇身拉长。

        首先我们将之前的代码复制一份,重新编辑,将下面这几部分删除,我们采用函数的方式:

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

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

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

struct Snake snake4 = {2,5,NULL};

    snake1.next = &snake2;

    snake2.next = &snake3;

    snake3.next = &snake4;

        其次,我们定义一个 两个全局变量,蛇头和蛇尾,才用struct的尾插法,将我们的蛇身逐渐插入到指定位置去:

    struct Snake *head;                //蛇头

    struct Snake *tail;                        //蛇尾

接着定义一个执行函数:

void initSnake(){

    head = (struct Snake *)malloc(sizeof(struct Snake));

    head->hang = 2;

    head->lie = 2;

    head->next == NULL;

    tail = head;

    addnode();

}

 其中的    addnode(),也是需要定义的,这个函数主要体现了尾插法:

 同时将之前的    p = &snake1;处改成    p = head;其余保持不变运行,如下图所示:

 

 

 

由于我们就是引用了一次addnode()函数,结果就是我们得到了两个【】【】蛇身, 如果我们需要五个蛇身,就引用四次就好,后面的问题就可以直接转换成函数的引用,就不会像之前那样需要几个蛇身就struct Snake去定义几个了,实在太土,好了今天就到这里,一起加油吧~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值