Rev 33 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 33 | Rev 108 | ||
|---|---|---|---|
| Line 26... | Line 26... | ||
| 26 |  *                                                                             * | 26 |  *                                                                             * | 
| 27 |  *   Finally, if there is an enpassant capture possible (the last move was a   * | 27 |  *   Finally, if there is an enpassant capture possible (the last move was a   * | 
| 28 |  *   double pawn move and there was an enemy pawn that could capture it.  The  * | 28 |  *   double pawn move and there was an enemy pawn that could capture it.  The  * | 
| 29 |  *   square is the square the capturing pawn ends up on.                       * | 29 |  *   square is the square the capturing pawn ends up on.                       * | 
| 30 |  *                                                                             * | 30 |  *                                                                             * | 
| 31 |  *         K2R/PPP////q/5ppp/7k/ b - - | 31 |  *           K2R/PPP////q/5ppp/7k/ b - -                                       * | 
| 32 |  *                                                                             * | 32 |  *                                                                             * | 
| 33 |  *   this assumes that k represents a white king and -q represents a black     * | 33 |  *   this assumes that k represents a white king and -q represents a black     * | 
| 34 |  *   queen.                                                                    * | 34 |  *   queen.                                                                    * | 
| 35 |  *                                                                             * | 35 |  *                                                                             * | 
| 36 |  *                          k  *  *  r  *  *  *  * | 36 |  *                            k  *  *  r  *  *  *  *                           * | 
| 37 |  *                          p  p  p  *  *  *  *  * | 37 |  *                            p  p  p  *  *  *  *  *                           * | 
| 38 |  *                           | 38 |  *                            *  *  *  *  *  *  *  *                           * | 
| 39 |  *                           | 39 |  *                            *  *  *  *  *  *  *  *                           * | 
| 40 |  *                           | 40 |  *                            *  *  *  *  *  *  *  *                           * | 
| 41 |  *                         -q  *  *  *  *  *  *  * | 41 |  *                           -q  *  *  *  *  *  *  *                           * | 
| 42 |  *                          *  *  *  *  * -p -p -p | 42 |  *                            *  *  *  *  * -p -p -p                           * | 
| 43 |  *                          *  *  *  *  *  *  * -k | 43 |  *                            *  *  *  *  *  *  * -k                           * | 
| 44 |  *                                                                             * | 44 |  *                                                                             * | 
| 45 |  ******************************************************************************* | 45 |  ******************************************************************************* | 
| 46 |  */ | 46 |  */ | 
| 47 | void SetBoard(TREE * tree, int nargs, char *args[], int special) { | 47 | void SetBoard(TREE * tree, int nargs, char *args[], int special) { | 
| 48 | int twtm, i, match, num, pos, square, tboard[64]; | 48 | int twtm, i, match, num, pos, square, tboard[64]; | 
| 49 | int bcastle, ep, wcastle, error = 0; | 49 | int bcastle, ep, wcastle, error = 0, whichsq; | 
| 50 | char input[80]; | 50 | char input[80]; | 
| 51 | static const char bdinfo[] = | 51 | static const char bdinfo[] = | 
| 52 | { 'k', 'q', 'r', 'b', 'n', 'p', '*', 'P', 'N', 'B', | 52 | { 'k', 'q', 'r', 'b', 'n', 'p', '*', 'P', 'N', 'B', | 
| 53 | 'R', 'Q', 'K', '*', '1', '2', '3', '4', | 53 | 'R', 'Q', 'K', '*', '1', '2', '3', '4', | 
| 54 | '5', '6', '7', '8', '/' | 54 | '5', '6', '7', '8', '/' | 
| 55 | }; | 55 | }; | 
| 56 | static const char status[13] = | 56 | static const char status[13] = | 
| 57 | { 'K', 'Q', 'k', 'q', 'a', 'b', 'c', 'd', 'e', 'f', 'g', | 57 | { 'K', 'Q', 'k', 'q', 'a', 'b', 'c', 'd', 'e', 'f', 'g', | 
| 58 | 'h', ' ' | 58 | 'h', ' ' | 
| 59 | }; | 59 | }; | 
| 60 | int whichsq; | - | |
| 61 | static const int firstsq[8] = { 56, 48, 40, 32, 24, 16, 8, 0 }; | 60 | static const int firstsq[8] = { 56, 48, 40, 32, 24, 16, 8, 0 }; | 
| - | 61 | ||
| 62 | if (special) | 62 | if (special) | 
| 63 | 
 | 63 | strcpy(input, initial_position); | 
| 64 |   else | 64 |   else | 
| 65 | 
 | 65 | strcpy(input, args[0]); | 
| 66 | for (i = 0; i < 64; i++) | 66 | for (i = 0; i < 64; i++) | 
| 67 | tboard[i] = 0; | 67 | tboard[i] = 0; | 
| 68 | /* | 68 | /* | 
| 69 |  ************************************************************ | 69 |  ************************************************************ | 
| 70 |  *                                                          * | 70 |  *                                                          * | 
| Line 245... | Line 245... | ||
| 245 | game_wtm = twtm; | 245 | game_wtm = twtm; | 
| 246 | error += InvalidPosition(tree); | 246 | error += InvalidPosition(tree); | 
| 247 | if (!error) { | 247 | if (!error) { | 
| 248 | if (log_file) | 248 | if (log_file) | 
| 249 | DisplayChessBoard(log_file, tree->position); | 249 | DisplayChessBoard(log_file, tree->position); | 
| 250 | 
 | 250 | rep_index = 0; | 
| 251 | tree->rep_list[0] = HashKey; | 251 | tree->rep_list[0] = HashKey; | 
| 252 | Reversible(0) = 0; | 252 | Reversible(0) = 0; | 
| 253 | if (!special) { | 253 | if (!special) { | 
| 254 | last_mate_score = 0; | 254 | last_mate_score = 0; | 
| 255 | InitializeKillers(); | 255 | InitializeKillers(); |