01
前言
年也过完啦
我在过年期间也是成功完成了贪吃蛇小游戏
今天给大家讲一下关于贪吃蛇蛇身的建立方法
02
思路
我是使用链表建立的贪吃蛇蛇身。
使用链表可以更方便的表示每节蛇身的坐标
而且更加方便的找到下一节蛇身
这里我们要使用一个函数叫定位函数
他的定义如下
void Pos(int x, int y)
{
COORD scrn;
HANDLE hOuput=GetStdHandle(STD_OUTPUT_HANDLE);
scrn.X = x; scrn.Y = y;
SetConsoleCursorPosition(hOuput, scrn);
}
(当然,函数名随意) 这个函数的主要作用是将光标的位置移动
比如调用的时候使用Pos(0,5);
那么 光标将会在第五行开头出现;
这里要注意,在控制台中横坐标标度是纵坐标的二分之一
也就是说你定位Pos(10,5);
才会显示在你以为的那个正方形顶角
03
方法
首先我们要定义一个蛇的结构体
至于为什么链表头是蛇尾
下节蛇身移动中讲
如上草图
我们只需要给蛇的结点初始坐标,然后使用定位函数
Pos(x,y);
再打印一个方块;
printf("");
如此循环,直到链表尾
实际上就是一个链表遍历的过程;
蛇身的建立就是单链表的创建;
只不过是直接创建好,而不是依次输入数据创建;
可以看数据结构与算法专栏中的《单链表操作》
04
源程序
首先是结构体创建
定位函数的声明
蛇身的创建
打印蛇(白块表示蛇头)
方块图形在百度上找,然后复制粘贴
05
后话
在主函数中先调用创建蛇的函数,再打印蛇
下一节告诉大家怎么让蛇动起来