1 /* 2 ** 3 ** X11 Jewel By David Cooper and Jose Guterman 05/92 4 ** 5 */ 6 7 /* default colors */ 8 #define PIECE1_C "red" 9 #define PIECE2_C "green" 10 #define PIECE3_C "orange" 11 #define PIECE4_C "blue" 12 #define PIECE5_C "cyan" 13 #define PIECE6_C "yellow" 14 #define WILD_C "white" 15 #define FLASH_C "gray" 16 #define BACKGND_C "gray" 17 18 19 /* The numbers for PIECE1 to PIECE6 should be consecutive */ 20 #define PIECE1 0 21 #define PIECE2 1 22 #define PIECE3 2 23 #define PIECE4 3 24 #define PIECE5 4 25 #define PIECE6 5 26 27 # define NUM_REAL_PIECES 6 28 29 #define WILD_PIECE 6 30 31 #define BACKGND1 7 32 #define BACKGND2 8 33 #define BACKGND3 9 34 #define BACKGND4 10 35 36 # define NUM_BACKGND 4 37 38 #define FLASH1 11 39 #define FLASH2 12 40 #define FLASH3 13 41 #define FLASH4 14 42 43 # define NUM_FLASH 4 44 #define NUM_PIECES 15 45 46 47 #define TEST_PIECE(x) ( ((x)==PIECE1) || \ 48 ((x)==PIECE2) || \ 49 ((x)==PIECE3) || \ 50 ((x)==PIECE4) || \ 51 ((x)==PIECE5) || \ 52 ((x)==PIECE6) ) 53 54 55 #define AVG_BLOCKS_BETWEEN_JEWELS 27 56 57 struct rem_piece { 58 int x,y; 59 int piece; 60 }; 61 62 extern void Redraw_Board(); 63 extern void Init_Logic(); 64 extern void Move_Right(); 65 extern void Move_Left(); 66 extern void Rotate(); 67 extern void Drop(); 68 extern void Logic_Timeout(); 69 70