-
Notifications
You must be signed in to change notification settings - Fork 0
/
food.cpp
42 lines (40 loc) · 821 Bytes
/
food.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//生成食物
#include <stdio.h>
#include "head.h"
#include <Windows.h>
#include <time.h>
extern struct snake {
int x;
int y;
struct snake* next;
};
extern snake* food;
extern snake* head;
extern snake* q; //遍历蛇身,保证head一直在蛇头
extern int x;
extern int y;
void drawing_food(void) {
srand((unsigned)time(NULL));
food = (snake*)malloc(sizeof(snake));
food->x= rand() % 52 + 4; //生成随机数
while (food->x % 2 != 0) { //防止生成的食物在格子外
food->x = rand() % 52 + 4;
}
food->y = rand() % 24 + 1;
while (food->y % 2 != 0) {
food->y = rand() % 24 + 1;
}
q = head;
while (q != NULL) {
if (food->x == q->y && food->y == q->y) {
free(food);
drawing_food();
}
q = q->next;
}
color(12);
x = food->x;
y = food->y;
gotoxy(x,y);
printf("●");
}