gpt4 book ai didi

c - 我不明白如何初始化游戏的链表(贪吃蛇)

转载 作者:行者123 更新时间:2023-11-30 14:32:24 27 4
gpt4 key购买 nike

我不知道如何将尾部链接到头部以初始化列表。我了解如何链接新节点以及链接后的所有内容,但我不知道如何正确初始化蛇。它是用 C 语言编写的。

typedef struct node {
int x;
int y;
struct node* next;
struct node* prev;
} NODE;

typedef struct SNAKE {
NODE* head;
NODE* tail;
} SNAKE;

void initialSnaKE(SNAKE* snake) {

snake->tail->next=snake->head;

snake->head->next = NULL;

snake->tail->prev = snake->tail->next;

snake->tail->x = (ROWS / 2);

snake->tail->y = (COLS / 2);

snake->head->x = (ROWS / 2);

snake->head->y = (COLS / 2);

}

最佳答案

你的蛇并不存在,因为在蛇体内建立连接之前你甚至没有为它分配内存。

使用以下代码重新创建函数来初始化蛇,它可能会对您有所帮助:

snake->head = (NODE*)malloc(sizeof(NODE));
snake->head->prev = NULL;
snake->head->next = NULL;
// Your code to assign the coordinates of head
// But no need to initialize the tail here
// Because the snake grows its tail only when it eats food
snake->tail = NULL;

这足以使用您提供的详细信息初始化蛇。蛇内的连接将在另一个为蛇提供食物的函数中建立。要完成该任务,您可以了解doubly-linked lists.

老实说,我不认为这个简单的游戏的代码一定要这么复杂。一个简单的数组就足以实现你的蛇。想一想,然后毫不犹豫地评论您对这种更简单方法的疑虑。

关于c - 我不明白如何初始化游戏的链表(贪吃蛇),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59827544/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com