上一个文章提到了怎么将蛇身设置出来,这一篇文章我们来讲一下怎么将蛇身拉长,毕竟蛇身就一个【】也不是那么的好看,一点蛇样也没有。
假设我们蛇身有【】【】【】三个中括号这么长,当然在代码中这些个中括号得是英文状态下的,首先我们定义三个结构体类型的变量。
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)坐标处。
完整代码如下:
代码输出的结果如图所示:
好了,今天这篇文章的内容到这了,快去行动起来吧~