-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsna.h
84 lines (72 loc) · 1.48 KB
/
sna.h
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#define UP 72
#define DOWN 80
#define LEFT 75
#define RIGHT 77
#define MAX_X 75
#define MAX_Y 23
typedef struct node node;
typedef struct snake snake_obj;
typedef struct draw draw_obj;
typedef struct scenes scenes_obj;
struct node
{
int x;
int y;
struct node *next;
};
struct snake
{
int length;
int life;
int score;
node dir;
node *body_head;
node (*front)(snake_obj *);
node *(*head)(snake_obj *);
int (*life_f)(snake_obj *, int);
int (*mobile)(snake_obj *, int);
};
struct draw
{
int coor[MAX_X][MAX_Y];
int (*read)(draw_obj *, node);
int (*write)(draw_obj *, node *, int);
int (*print)(draw_obj *, int);
};
struct scenes
{
node *wall_head;
node *food_head;
node *(*food)(scenes_obj *, int);
node *(*wall)(scenes_obj *);
};
//func
int game_start(void);
//linked list
node *createlist(int);
node *update(node *, node);
int setnode(node *, int, int, int);
int addnode(node **, node);
int delnode(node *);
//snake
int mobile_impl(snake_obj *, int);
int life_impl(snake_obj *, int);
node front_impl(snake_obj *);
node *head_impl(snake_obj *obj);
//draw
int read_impl(draw_obj *, node);
int write_impl(draw_obj *, node *, int);
int print_impl(draw_obj *, int);
void print_xy(int, int, int);
//scenes
node *food_impl(scenes_obj *, int);
node *wall_impl(scenes_obj *);
//init
snake_obj *init_snake(void);
draw_obj *init_draw(void);
scenes_obj *init_scenes(void);
//os
int os_keyboard(void);
void os_clean(void);
void os_sleep(int);
void gotoxy(int, int);