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(); |