我们为贪吃蛇的节点设置为一个结构体,构成贪吃蛇的身子的话我们使用链表,链表的每一个节点是一个结构体
显示贪吃蛇身子的一个节点




我们这边node就表示一个蛇的身体 就是一小节
输出结果如下

显示贪吃蛇完整身子

效果如下

代码实现


这个hasSnakeNode(hang,lie)这个函数就是来判断当前这个坐标是否为蛇的身子的坐标,坐标带进去,如果符合return 1;那么返回1 到地图这里 1 的话就是ture 使hasSnakeNode这个函数生效,然后打印[ ]蛇身。那么函数封装的好处就是在于我们可以进行多个节点的判断

宏观的看,每个坐标都会进入到hasSnakeNode(hang,lie)进行判断,如果行列坐标等于蛇身子的行列坐标,那么就返回1 我们会去想p的下一项是哪里操作的 请看main函数node1.next=&next2,这个是关键,才能遍历链表,暂时是静态的写链表,下一次我们用动态添加的方法进行添加节点
代码
#include <curses.h>
struct snack{
int hang;
int lie;
struct snack *next;
};
struct snack node1 = {2,2,NULL};
struct snack node2 = {2,3,NULL};
struct snack node3 = {2,4,NULL};
void initgame()
{
initscr();
keypad(stdscr,1);
}
int hasSnackNode(int i,int j)
{
struct snack *p;
p = &node1;
while(p != NULL){
if(p->hang==i && p->lie==j){
return 1;
}
p=p->next;
}
return 0;
}
void gamepic()
{
int hang;
int lie;
for(hang=0;hang<20;hang++){


最低0.47元/天 解锁文章

1500

被折叠的 条评论
为什么被折叠?



