home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume13 / xmake5 / part02 / bdconst.h next >
C/C++ Source or Header  |  1992-01-13  |  2KB  |  74 lines

  1. // FILE:        bdconst.h
  2.  
  3. const int
  4.   max_side_lev = 31 ,  max_index = 496 ,
  5.   max_line_lev = 20 ,  max_pt_lev = 27 ,
  6.   wall = '#',  blank = '.' ,  black = 'X' , white = 'O' ,
  7.   bdwidth = 21 ,  bdlength = 440 ;
  8.  
  9. extern const int weight5[5], dirx[8];
  10.  
  11. const int x_index_range = bdlength+1;
  12.  
  13. typedef int   x_index;          // 0..bdlength ;
  14. typedef char  side_lev_range;   // 0..max_side_lev ;
  15. typedef int   line_index;       // 0..max_index ;
  16. typedef char  line_lev_range;   // 1..max_line_lev ;
  17. typedef char  pt_lev_range;     // 1..max_pt_lev ;
  18. typedef line_lev_range  line_val_type[max_index+1];
  19.  
  20. extern int weight31[31];
  21.  
  22. typedef struct pt_lev_record_tag {
  23.       int pc[2][max_pt_lev+1];
  24.       int mp[2];             // { 1..max_pt_lev }
  25. }  pt_lev_record;
  26.  
  27. typedef struct bdstatus_type_tag {
  28.       side_lev_range side_lev[x_index_range][2][8];
  29.       line_lev_range line_lev[x_index_range][2][4];
  30.       pt_lev_range   point_lev[x_index_range][2];
  31.       pt_lev_record  pt_lev_rec;
  32. } bdstatus_type;
  33.  
  34. extern int   min_depth,max_depth;       // depths of MIN/MAX search
  35.  
  36. extern const pt_lev_range  point_lev_tab[max_line_lev+1][max_line_lev+1];
  37. //      initialized in "initbd.C"
  38.  
  39. typedef struct update_record_tag {
  40.         int             side_lev, line_lev;
  41.         pt_lev_range    point_lev;
  42. } update_record[2][8][5] ;  // array[1..2,-4..4,1..5]
  43.  
  44. extern char board[x_index_range];
  45. extern bdstatus_type bdstatus;
  46.  
  47. extern int player;
  48. extern char player_color[2];
  49. extern int step;
  50.  
  51. #define x_col(x) (x % bdwidth)
  52. #define x_row(x) (x / bdwidth)
  53. #define dec(x) ((x)--)
  54. #define inc(x) ((x)++)
  55.  
  56. //---------------------------------------------------------------------------
  57. //      Procedures defined in "initbd.C"
  58.  
  59. extern void init_bdstatus(void);
  60. extern int  get_side_lev(int x,int d,char c);
  61. extern void set_side_lev(int x);
  62. extern void set_line_lev(int x,int c,int d);
  63. extern void set_point_lev(int x, int c);
  64.  
  65. //---------------------------------------------------------------------------
  66. //      Procedures defined in "make5.C"
  67.  
  68. extern void update_board(int sw, int x, update_record *z, pt_lev_record *pt);
  69. extern void restore(int x, update_record *z, pt_lev_record *pt);
  70. extern update_record *new_update_record(void);
  71. extern pt_lev_record *new_pt_lev_record(void);
  72.  
  73. //---------------------------------------------------------------------------
  74.