general.h
changeset 4 d9259a605dec
child 6 bfbca2c0fc70
equal deleted inserted replaced
3:29cc57a9678e 4:d9259a605dec
       
     1 #define BOX '$'
       
     2 #define WALL '#'
       
     3 #define MAN '@'
       
     4 #define PLATFORM '.'
       
     5 #define BOXINPLATFORM '*'
       
     6 #define MANINPLATFORM 'E'
       
     7 #define BLANK ' '
       
     8 #define CORNER '-'
       
     9 #define MANCANMOVE '+'
       
    10 
       
    11 //#define DEBUG
       
    12 
       
    13 enum
       
    14 {
       
    15 	ALARM_SECONDS=1,
       
    16 	MAX_X=50,
       
    17 	MAX_Y=50,
       
    18 	MAX_MOVES=50,
       
    19 	MAX_STEPS=50,
       
    20 	MAX_BOXES=15
       
    21 };
       
    22 
       
    23 
       
    24 enum logic
       
    25 {
       
    26 	TRUE=1,
       
    27 	FALSE=0,
       
    28 };
       
    29 
       
    30 struct Position
       
    31 {
       
    32 	int x;
       
    33 	int y;
       
    34 };
       
    35 
       
    36 struct Map
       
    37 {
       
    38 	char Cells[MAX_Y][MAX_X];
       
    39 	char cells_boxes[MAX_Y][MAX_X];
       
    40 	char man_moves[MAX_Y][MAX_X];
       
    41 	int SizeX, SizeY;
       
    42 	struct Position Man;
       
    43 	int NumPlatforms;
       
    44 	int NumBoxesInPlatform;
       
    45 	struct Position Box[MAX_BOXES];
       
    46 	int NumBoxes;
       
    47 };
       
    48 
       
    49 
       
    50 
       
    51 enum e_direction
       
    52 {
       
    53 	DIR_LEFT,
       
    54 	DIR_RIGHT,
       
    55 	DIR_DOWN,
       
    56 	DIR_UP
       
    57 };
       
    58 
       
    59 static const struct Position move_vectors[4] = {
       
    60 	{0, 1},
       
    61 	{0, -1},
       
    62 	{1, 0},
       
    63 	{-1, 0}};
       
    64 
       
    65 struct BoxMove
       
    66 {
       
    67 	int box;
       
    68 	struct Position dir;
       
    69 };
       
    70 
       
    71 
       
    72 /* Prototypes for map managing */
       
    73 
       
    74 void CopyMap (struct Map *Mdest, const struct Map *Morig);
       
    75 void ReadMap(struct Map *M, char *FileName);
       
    76 void ShowMap (const struct Map *M);