LUT.CPP
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:6k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /* --------------------------------------------------------------------------
  2. RED is on top moving down
  3. BLACK is on bottom moving up
  4. -------------------------------------------------------------------------- */
  5. const int black_lut[][4] =
  6. {
  7.     /* move 1, become king flag, move 2, become king flag */
  8.     { 0,0,0,0 },
  9.     {  1+4, 0    ,  1+5, 0     },
  10.     {  2+4, 0    ,  2+5, 0     },
  11.     {  3+4, 0    ,  3+5, 0     },
  12.     {  4+4, 0    ,  0  , 0     },
  13.     {  5+4, 0    ,  0  , 0     },
  14.     {  6+3, 0    ,  6+4, 0     },
  15.     {  7+3, 0    ,  7+4, 0     },
  16.     {  8+3, 0    ,  8+4, 0     },
  17.     {  9+4, 0    ,  9+5, 0     },
  18.     { 10+4, 0    , 10+5, 0     },
  19.     { 11+4, 0    , 11+5, 0     },
  20.     { 12+4, 0    ,  0  , 0     },
  21.     { 13+4, 0    ,  0  , 0     },
  22.     { 14+3, 0    , 14+4, 0     },
  23.     { 15+3, 0    , 15+4, 0     },
  24.     { 16+3, 0    , 16+4, 0     },
  25.     { 17+4, 0    , 17+5, 0     },
  26.     { 18+4, 0    , 18+5, 0     },
  27.     { 19+4, 0    , 19+5, 0     },
  28.     { 20+4, 0    ,  0  , 0     },
  29.     { 21+4, 0    ,  0  , 0     },
  30.     { 22+3, 0    , 22+4, 0     },
  31.     { 23+3, 0    , 23+4, 0     },
  32.     { 24+3, 0    , 24+4, 0     },
  33.     { 25+4, KING , 25+5, KING  },
  34.     { 26+4, KING , 26+5, KING  },
  35.     { 27+4, KING , 27+5, KING  },
  36.     { 28+4, KING ,  0  , 0     },
  37.     { 0,0,0,0 },
  38.     { 0,0,0,0 },
  39.     { 0,0,0,0 },
  40.     { 0,0,0,0 },
  41.     { 0,0,0,0 },
  42.     { 0,0,0,0 },
  43.     { 0,0,0,0 }
  44. };
  45. const int red_lut[][4] =
  46. {
  47.     /* move 1, become king flag, move 2, become king flag */
  48.     { 0,0,0,0 },
  49.     { 0,0,0,0 },
  50.     { 0,0,0,0 },
  51.     { 0,0,0,0 },
  52.     { 0,0,0,0 },
  53.     {  5-4, KING ,  0  , 0     },
  54.     {  6-5, KING ,  6-4, KING  },
  55.     {  7-5, KING ,  7-4, KING  },
  56.     {  8-5, KING ,  8-4, KING  },
  57.     {  9-4, 0    ,  9-3, 0     },
  58.     { 10-4, 0    , 10-3, 0     },
  59.     { 11-4, 0    , 11-3, 0     },
  60.     { 12-4, 0    ,  0  , 0     },
  61.     { 13-4, 0    ,  0  , 0     },
  62.     { 14-5, 0    , 14-4, 0     },
  63.     { 15-5, 0    , 15-4, 0     },
  64.     { 16-5, 0    , 16-4, 0     },
  65.     { 17-4, 0    , 17-3, 0     },
  66.     { 18-4, 0    , 18-3, 0     },
  67.     { 19-4, 0    , 19-3, 0     },
  68.     { 20-4, 0    ,  0  , 0     },
  69.     { 21-4, 0    ,  0  , 0     },
  70.     { 22-5, 0    , 22-4, 0     },
  71.     { 23-5, 0    , 23-4, 0     },
  72.     { 24-5, 0    , 24-4, 0     },
  73.     { 25-4, 0    , 25-3, 0     },
  74.     { 26-4, 0    , 26-3, 0     },
  75.     { 27-4, 0    , 27-3, 0     },
  76.     { 28-4, 0    ,  0  , 0     },
  77.     { 29-4, 0    ,  0  , 0     },
  78.     { 30-5, 0    , 30-4, 0     },
  79.     { 31-5, 0    , 31-4, 0     },
  80.     { 32-5, 0    , 32-4, 0     },
  81.     { 0,0,0,0 },
  82.     { 0,0,0,0 },
  83.     { 0,0,0,0 }
  84. };
  85. const int black_jump_lut[][5] =
  86. {
  87.     /* over, onto -or- over, onto , become king flag */
  88.     { 0,0,0,0,0 },
  89.     {  1+5,  1+9,  0  ,  0  ,0},
  90.     {  2+4,  2+7,  2+5,  2+9,0},
  91.     {  3+4,  3+7,  3+5,  3+9,0},
  92.     {  4+4,  4+7,  0  ,  0  ,0},
  93.     {  5+4,  5+9,  0  ,  0  ,0},
  94.     {  6+3,  6+7,  6+4,  6+9,0},
  95.     {  7+3,  7+7,  7+4,  7+9,0},
  96.     {  8+3,  8+7,  0  ,  0  ,0},
  97.     {  9+5,  9+9,  0  ,  0  ,0},
  98.     { 10+4, 10+7, 10+5, 10+9,0},
  99.     { 11+4, 11+7, 11+5, 11+9,0},
  100.     { 12+4, 12+7,  0  ,  0  ,0},
  101.     { 13+4, 13+9,  0  ,  0  ,0},
  102.     { 14+3, 14+7, 14+4, 14+9,0},
  103.     { 15+3, 15+7, 15+4, 15+9,0},
  104.     { 16+3, 16+7,  0  ,  0  ,0},
  105.     { 17+5, 17+9,  0  ,  0  ,0},
  106.     { 18+4, 18+7, 18+5, 18+9,0},
  107.     { 19+4, 19+7, 19+5, 19+9,0},
  108.     { 20+4, 20+7,  0  ,  0  ,0},
  109.     { 21+4, 21+9,  0  ,  0  ,KING},
  110.     { 22+3, 22+7, 22+4, 22+9,KING},
  111.     { 23+3, 23+7, 23+4, 23+9,KING},
  112.     { 24+3, 24+7,  0  ,  0  ,KING},
  113.     { 0,0,0,0,0 },
  114.     { 0,0,0,0,0 },
  115.     { 0,0,0,0,0 },
  116.     { 0,0,0,0,0 },
  117.     { 0,0,0,0,0 },
  118.     { 0,0,0,0,0 },
  119.     { 0,0,0,0,0 },
  120.     { 0,0,0,0,0 },
  121.     { 0,0,0,0,0 },
  122.     { 0,0,0,0,0 },
  123.     { 0,0,0,0,0 }
  124. };
  125. const int red_jump_lut[][5] =
  126. {
  127.     /* over, onto -or- over, onto , become king flag */
  128.     { 0,0,0,0,0 },
  129.     { 0,0,0,0,0 },
  130.     { 0,0,0,0,0 },
  131.     { 0,0,0,0,0 },
  132.     { 0,0,0,0,0 },
  133.     { 0,0,0,0,0 },
  134.     { 0,0,0,0,0 },
  135.     { 0,0,0,0,0 },
  136.     { 0,0,0,0,0 },
  137.     {  9-3,  9-7,     0  ,  0  ,KING},
  138.     { 10-4, 10-9,    10-3, 10-7,KING},
  139.     { 11-4, 11-9,    11-3, 11-7,KING},
  140.     { 12-4, 12-9,     0  ,  0  ,KING},
  141.     { 13-4, 13-7,     0  ,  0  ,0},
  142.     { 14-5, 14-9,    14-4, 14-7,0},
  143.     { 15-5, 15-9,    15-4, 15-7,0},
  144.     { 16-5, 16-9,     0  ,  0  ,0},
  145.     { 17-3, 17-7,     0  ,  0  ,0},
  146.     { 18-4, 18-9,    18-3, 18-7,0},
  147.     { 19-4, 19-9,    19-3, 19-7,0},
  148.     { 20-4, 20-9,     0  ,  0  ,0},
  149.     { 21-4, 21-7,     0  ,  0  ,0},
  150.     { 22-5, 22-9,    22-4, 22-7,0},
  151.     { 23-5, 23-9,    23-4, 23-7,0},
  152.     { 24-5, 24-9,     0  ,  0  ,0},
  153.     { 25-3, 25-7,     0  ,  0  ,0},
  154.     { 26-4, 26-9,    26-3, 26-7,0},
  155.     { 27-4, 27-9,    27-3, 27-7,0},
  156.     { 28-4, 28-9,     0  ,  0  ,0},
  157.     { 29-4, 29-7,     0  ,  0  ,0},
  158.     { 30-5, 30-9,    30-4, 30-7,0},
  159.     { 31-5, 31-9,    31-4, 31-7,0},
  160.     { 32-5, 32-9,     0  ,  0  ,0},
  161.     { 0,0,0,0,0 },
  162.     { 0,0,0,0,0 },
  163.     { 0,0,0,0,0 }
  164. };
  165. /* --------------------------------------------------------------------------
  166. The following is the order in which the pieces will be tryed
  167. normally, it makes no difference, but if the game tree gets pruned,
  168. the moves at the bottom could be ignored.
  169. -------------------------------------------------------------------------- */
  170. struct _piece_order_struct {SQUARE m; long q;} piece_order[SQRS_MAX] =
  171. {
  172.     /* piece number, best quality achievable by piece */
  173.     {0,  -1}, /* zero move.  it is important to understand that this move
  174.                  need not be tested except when the piece order has been
  175.                  sorted because after the sort, the 0th element could contain
  176.                  a legal move.  Whereas before the sort, it could not */
  177.     {1,  -1},
  178.     {2,  -1},
  179.     {3,  -1},
  180.     {4,  -1},
  181.     {5,  -1},
  182.     {6,  -1},
  183.     {7,  -1},
  184.     {8,  -1},
  185.     {9,  -1},
  186.     {10, -1},
  187.     {11, -1},
  188.     {12, -1},
  189.     {13, -1},
  190.     {14, -1},
  191.     {15, -1},
  192.     {16, -1},
  193.     {17, -1},
  194.     {18, -1},
  195.     {19, -1},
  196.     {20, -1},
  197.     {21, -1},
  198.     {22, -1},
  199.     {23, -1},
  200.     {24, -1},
  201.     {25, -1},
  202.     {26, -1},
  203.     {27, -1},
  204.     {28, -1},
  205.     {29, -1},
  206.     {30, -1},
  207.     {31, -1},
  208.     {32, -1},
  209.     {33, -1},
  210.     {34, -1}
  211. };