void InitSnake() { //对蛇的初始化 snake.len = g_len; //蛇身初识长度 snake.x = COL / 2; snake.y = ROW / 2; //蛇头坐标 g_map[snake.y][snake.x] = HEAD; snake.body = (Body*)malloc(sizeof(Body) * ROW * COL); if (snake.body == NULL) { perror("InitSnack::malloc"); exit(1); } memset(snake.body, 0, sizeof(Body) * ROW * COL); int i = 0; while (i < g_len) { snake.body[i].x = snake.x - (i + 1); snake.body[i].y = snake.y; g_map[snake.body[i].y][snake.body[i].x] = BODY; ++i; } //蛇身初始化 g_rate = RATE; //速度初始化 }
时间: 2024-02-14 11:22:23 浏览: 109
这段代码的作用是初始化一个蛇,并将其放置在游戏地图上。具体来说,这个蛇有一个长度,一个头部和若干个身体部分。函数中首先初始化了蛇的长度,然后将蛇头放在地图的中央,标记为头部。接着分配了一个大小为 ROW * COL 的 Body 数组来存储蛇的身体部分,注意这里使用了动态内存分配(malloc 函数)来避免数组过大而导致的栈溢出。然后使用了 memset 函数将这个数组的值全部初始化为 0。接下来使用一个循环来初始化蛇的身体部分,将它们依次放在蛇头的左边,标记为身体部分。最后,将游戏速度初始化为一个常量 RATE。
阅读全文