-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCONTROL.h
More file actions
27 lines (22 loc) · 1.58 KB
/
CONTROL.h
File metadata and controls
27 lines (22 loc) · 1.58 KB
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
/*
这个部分被用来定义控制部分中的条件判断。
包括推箱子中和普通行动两种判断。
*/
#ifndef _CONTROL__H
#define _CONTROL__H
#define GO_DOWN map_cache[Spx+1][Spy]!='#' && map_cache[Spx+1][Spy]!='O' && map_cache[Spx+1][Spy]!='@'
#define GO_UP map_cache[Spx-1][Spy]!='#' && map_cache[Spx-1][Spy]!='O' && map_cache[Spx-1][Spy]!='@'
#define GO_RIGHT map_cache[Spx][Spy+1]!='#' && map_cache[Spx][Spy+1]!='O' && map_cache[Spx][Spy+1]!='@'
#define GO_LEFT map_cache[Spx][Spy-1]!='#' && map_cache[Spx][Spy-1]!='O' && map_cache[Spx][Spy-1]!='@'
#define PUSH_DOWN map_cache[Spx+2][Spy]!='#' && map_cache[Spx+1][Spy]=='O' && map_cache[Spx+2][Spy]!='O' && map_cache[Spx+2][Spy]!='@' || map_cache[Spx+1][Spy]=='@' && map_cache[Spx+2][Spy]!='#' && map_cache[Spx+2][Spy]!='@'
#define PUSH_UP map_cache[Spx-2][Spy]!='#' && map_cache[Spx-1][Spy]=='O' && map_cache[Spx-2][Spy]!='O' && map_cache[Spx-2][Spy]!='@' || map_cache[Spx-1][Spy]=='@' && map_cache[Spx-2][Spy]!='#' && map_cache[Spx-2][Spy]!='@'
#define PUSH_RIGHT map_cache[Spx][Spy+2]!='#' && map_cache[Spx][Spy+1]=='O' && map_cache[Spx][Spy+2]!='O' && map_cache[Spx][Spy+2]!='@' || map_cache[Spx][Spy+1]=='@' && map_cache[Spx][Spy+2]!='#' && map_cache[Spx][Spy+2]!='@'
#define PUSH_LEFT map_cache[Spx][Spy-2]!='#' && map_cache[Spx][Spy-1]=='O' && map_cache[Spx][Spy-2]!='O' && map_cache[Spx][Spy-2]!='@' || map_cache[Spx][Spy-1]=='@' && map_cache[Spx][Spy-2]!='#' && map_cache[Spx][Spy-2]!='@'
#define WIN 1
char map_cache [100][100];
int Spx, Spy;
extern void _s(void);
extern void _w(void);
extern void _d(void);
extern void _a(void);
#endif