X-Git-Url: http://winboard.nl/cgi-bin?p=capablanca.git;a=blobdiff_plain;f=lasker-2.2.3%2Fsrc%2Fboard.c;h=f2fa5f08081e15b0dff27ef88e4855200904ed76;hp=40e7037cf222ecdd101841d5ef159fa077a8c31f;hb=15d6762279fb7e4c1fecc81699507d9011287779;hpb=0afd97c1ccfb2032d51206605a890fdc25ca99d8 diff --git a/lasker-2.2.3/src/board.c b/lasker-2.2.3/src/board.c index 40e7037..f2fa5f0 100644 --- a/lasker-2.2.3/src/board.c +++ b/lasker-2.2.3/src/board.c @@ -24,11 +24,14 @@ const char *wpstring[] = {" ", "P", "N", "B", "R", "A", "C", "M", "Q", "E", "B", "Q", "W", "H", "N", "D", "H", "L", - "C", "S", "G", "H", "A", "F", "E", "H", "M", "S", "E", "W", "O", "G", "V", "S", "E", "A", "K", "H", "E"}; + "C", "S", "G", "H", "A", "F", "E", "H", "M", "S", "E", "W", "O", "G", "V", "S", "E", "A", + "K", "H", "E", "W", "G", "L", "C", "H"}; const char *bpstring[] = {" ", "p", "n", "b", "r", "a", "c", "m", "q", "e", "b", "q", "w", "h", "n", "d", "h", "l", - "c", "s", "g", "h", "a", "f", "e", "h", "m", "s", "e", "w", "o", "g", "v", "s", "e", "a", "k", "h", "e"}; + "c", "s", "g", "h", "a", "f", "e", "h", "m", "s", "e", "w", "o", "g", "v", "s", "e", "a", + "k", "h", "e", "w", "g", "l", "c", "h"}; -int pieceValues[PIECES] = {0, 1, 3, 3, 5, 8, 9, 3, 9, 1, 1, 2, 2, 2, 1, 6, 5, 2, 3, 3, 3, 1, 5, 2, 1, 7, 7, 3, 3, 3, 7, 7, 7, 8, 9, 12, 0, 8, 9}; +int pieceValues[PIECES] = {0, 1, 3, 3, 5, 8, 9, 3, 9, 1, 1, 2, 2, 2, 1, 6, 5, 2, 3, 3, 3, 1, 5, 2, 1, 7, 7, 3, 3, 3, 7, 7, 7, 8, 9, 12, + 0, 8, 9, 8, 7, 3, 3, 1}; static const int mach_type = (1<<7) | (1<<8) | (1<<9) | (1<<10) | (1<<11); #define IsMachineStyle(n) (((1<<(n)) & mach_type) != 0) @@ -574,10 +577,12 @@ static int style1(struct game_state_t *b, struct move_t *ml) { static const char *wp[] = {" |", " P |", " N |", " B |", " R |", " A |", " C |", " M |", " Q |", " E |", " B |", " Q |", " W |", " H |", " N |", " D |", " H |", " L |", " C |", " S |", " G |", " H |", " A |", " F |", - " E |", " H |", " M |", " S |", " E |", " W |", " O |", " G |", " V |", " S |", " E |", " A |", " K |", " H |", " E |"}; + " E |", " H |", " M |", " S |", " E |", " W |", " O |", " G |", " V |", " S |", " E |", " A |", + " K |", " H |", " E |", " W |", " G |", " L |", " C |", " H |"}; static const char *bp[] = {" |", " *P|", " *N|", " *B|", " *R|", " *A|", " *C|", " *M|", " *Q|", " *E|", " *B|", " *Q|", " *W|", " *H|", " *N|", " *D|", " *H|", " *L|", " *C|", " *S|", " *G|", " *H|", " *A|", " *F|", - " *E|", " *H|", " *M|", " *S|", " *E|", " *W|", " *O|", " *G|", " *V|", " *S|", " *E|", " *A|", " *K|", " *H|", " *E|"}; + " *E|", " *H|", " *M|", " *S|", " *E|", " *W|", " *O|", " *G|", " *V|", " *S|", " *E|", " *A|", + " *K|", " *H|", " *E|", " *W|", " *G|", " *L|", " *C|", " *H|"}; static char *wsqr = ""; static char *bsqr = ""; static char *top = "\t---------------------------------\n"; @@ -595,10 +600,12 @@ static int style2(struct game_state_t *b, struct move_t *ml) { static const char *wp[] = {"- ", "P ", "N ", "B ", "R ", "A ", "C ", "M ", "Q ", "E ", "B ", "Q ", "W ", "H ", "N ", "D ", "H ", "L ", "C ", "S ", "G ", "H ", "A ", "F ", - "E ", "H ", "M ", "S ", "E ", "W ", "O ", "G ", "V ", "S ", "E ", "A ", "K ", "H ", "E "}; + "E ", "H ", "M ", "S ", "E ", "W ", "O ", "G ", "V ", "S ", "E ", "A ", + "K ", "H ", "E ", "W ", "G ", "L ", "C ", "H "}; static const char *bp[] = {"+ ", "p' ", "n' ", "b' ", "r' ", "a' ", "c' ", "m' ", "q' ", "e' ", "b' ", "q' ", "w' ", "h' ", "n' ", "d' ", "h' ", "l' ", "c' ", "s' ", "g' ", "h' ", "a' ", "f' ", - "e' ", "h' ", "m' ", "s' ", "e' ", "w' ", "o' ", "g' ", "v' ", "s' ", "e' ", "a' ", "k' ", "h' ", "e' "}; + "e' ", "h' ", "m' ", "s' ", "e' ", "w' ", "o' ", "g' ", "v' ", "s' ", "e' ", "a' ", + "k' ", "h' ", "e' ", "w' ", "g' ", "l' ", "c' ", "h' "}; static char *wsqr = ""; static char *bsqr = ""; static char *top = ""; @@ -616,10 +623,12 @@ static int style3(struct game_state_t *b, struct move_t *ml) { static const char *wp[] = {" ", " P ", " N ", " B ", " R ", " A ", " C ", " M ", " Q ", " E ", " B ", " Q ", " W ", " H ", " N ", " D ", " H ", " L ", " C ", " S ", " G ", " H ", " A ", " F ", - " E ", " H ", " M ", " S ", " E ", " W ", " O ", " G ", " V ", " S ", " E ", " A ", " K ", " H ", " E "}; + " E ", " H ", " M ", " S ", " E ", " W ", " O ", " G ", " V ", " S ", " E ", " A ", + " K ", " H ", " E ", " W ", " G ", " L ", " C ", " H "}; static const char *bp[] = {" ", " *P", " *N", " *B", " *R", " *A", " *C", " *M", " *Q", " *E", " *B", " *Q", " *W", " *H", " *N", " *D", " *H", " *L", " *C", " *S", " *G", " *H", " *A", " *F", - " *E", " *H", " *M", " *S", " *E", " *W", " *O", " *G", " *V", " *S", " *E", " *A", " *K", " *H", " *E"}; + " *E", " *H", " *M", " *S", " *E", " *W", " *O", " *G", " *V", " *S", " *E", " *A", + " *K", " *H", " *E", " *W", " *G", " *L", " *C", " *H"}; static char *wsqr = "\033[0m"; static char *bsqr = "\033[7m"; static char *top = "\t+------------------------+\n"; @@ -637,10 +646,12 @@ static int style4(struct game_state_t *b, struct move_t *ml) { static const char *wp[] = {" ", " P ", " N ", " B ", " R ", " A ", " C ", " M ", " Q ", " E ", " B ", " Q ", " W ", " H ", " N ", " D ", " H ", " L ", " C ", " S ", " G ", " H ", " A ", " F ", - " E ", " H ", " M ", " S ", " E ", " W ", " O ", " G ", " V ", " S ", " E ", " A ", " K ", " H ", " E "}; + " E ", " H ", " M ", " S ", " E ", " W ", " O ", " G ", " V ", " S ", " E ", " A ", + " K ", " H ", " E ", " W ", " G ", " L ", " C ", " H "}; static const char *bp[] = {" ", " *P", " *N", " *B", " *R", " *A", " *C", " *M", " *Q", " *E", " *B", " *Q", " *W", " *H", " *N", " *D", " *H", " *L", " *C", " *S", " *G", " *H", " *A", " *F", - " *E", " *H", " *M", " *S", " *E", " *W", " *O", " *G", " *V", " *S", " *E", " *A", " *K", " *H", " *E"}; + " *E", " *H", " *M", " *S", " *E", " *W", " *O", " *G", " *V", " *S", " *E", " *A", + " *K", " *H", " *E", " *W", " *G", " *L", " *C", " *H"}; static char *wsqr = "\033[7m"; static char *bsqr = "\033[0m"; static char *top = "\t+------------------------+\n"; @@ -659,11 +670,13 @@ static int style5(struct game_state_t *b, struct move_t *ml) static const char *wp[] = {" ", " o ", " :N:", " ", " |R|", " (A)", " [C]", " :M:", " {Q}", " !E!", " ", " {Q}", " .W.", " :H:", " :N:", " ", " |D|", " |L|", " |C|", " !S!", " :G:", " :H:", " {A}", " {F}", " !E!", " (H)", " [M]", " :S:", - " !E!", " |W|", " *O*", " {G}", " :V:", " (S)", " [E]", " &A&", " =K=", " (H)", " [E]"}; + " !E!", " |W|", " *O*", " {G}", " :V:", " (S)", " [E]", " &A&", + " =K=", " (H)", " [E]", " (W)", " [G]", " ", " |C|", " h "}; static const char *bp[] = {" ", " p ", " :n:", " ", " |r|", " (a)", " [c]", " :m:", " {q}", " !e!", " ", " {q}", " .w.", " :h:", " :n:", " ", " |d|", " |l|", " |c|", " !s!", " :g:", " :h:", " {a}", " {f}", " !e!", " (h)", " [m]", " :s:", - " !e!", " |w|", " *o*", " {g}", " :v:", " (s)", " [e]", " &a&", " =k=", " (f)", " [e]"}; + " !e!", " |w|", " *o*", " {g}", " :v:", " (s)", " [e]", " &a&", + " =k=", " (f)", " [e]", " (w)", " [g]", " ", " |c|", " h "}; static char *wsqr = ""; static char *bsqr = ""; static char *top = " . . . . . . . . .\n"; @@ -682,11 +695,13 @@ static int style6(struct game_state_t *b, struct move_t *ml) static const char *wp[] = {" |", " wp |", " WN |", " WB |", " WR |", " WA |", " WC |", " WM |", " WQ |", " WE |", " WB |", " WQ |", " WW |", " WH |", " WN |", " WD |", " WH |", " WL |", " WC |", " WS |", " WG |", " WH |", " WA |", " WF |", " WE |", " WH |", " WM |", - " WS |", " WE |", " WW |", " WO |", " WG |", " WV |", " WS |", " WE |", " WA |", " WK |", " WH |", " WE |"}; + " WS |", " WE |", " WW |", " WO |", " WG |", " WV |", " WS |", " WE |", " WA |", + " WK |", " WH |", " WE |", " WW |", " WG |", " WL |", " WC |", " Wh |"}; static const char *bp[] = {" |", " bp |", " BN |", " BB |", " BR |", " BA |", " BC |", " BM |", " BQ |", " BE |", " BB |", " BQ |", " BW |", " BH |", " BN |", " BD |", " BH |", " BL |", " BC |", " BS |", " BG |", " BH |", " BA |", " BF |", " BE |", " BH |", " BM |", - " BS |", " BE |", " BW |", " BO |", " BG |", " BV |", " BS |", " BE |", " BA |", " BK |", " BH |", " BE |"}; + " BS |", " BE |", " BW |", " BO |", " BG |", " BV |", " BS |", " BE |", " BA |", + " BK |", " BH |", " BE |", " BW |", " BG |", " BL |", " BC |", " Bh |"}; static char *wsqr = ""; static char *bsqr = ""; static char *top = "\t-----------------------------------------\n"; @@ -704,9 +719,11 @@ static int style6(struct game_state_t *b, struct move_t *ml) static int style7(struct game_state_t *b, struct move_t *ml) { static const char *wp[] = {" ", " P", " N", " B", " R", " A", " C", " M", " Q", " E", " B", " Q", " W", " H", " N", " D", " H", " L", - " C", " S", " G", " H", " A", " F", " E", " H", " M", " S", " E", " W", " O", " G", " V", " S", " E", " A", " K", " H", " E"}; + " C", " S", " G", " H", " A", " F", " E", " H", " M", " S", " E", " W", " O", " G", " V", " S", " E", " A", + " K", " H", " E", " W", " G", " L", " C", " H"}; static const char *bp[] = {" -", " p", " n", " b", " r", " a", " c", " m", " q", " e", " b", " q", " w", " h", " n", " d", " h", " l", - " c", " s", " g", " h", " a", " f", " e", " h", " m", " s", " e", " w", " o", " g", " v", " s", " e", " a", " k", " h", " e"}; + " c", " s", " g", " h", " a", " f", " e", " h", " m", " s", " e", " w", " o", " g", " v", " s", " e", " a", + " k", " h", " e", " w", " g", " l", " c", " h"}; static char *wsqr = ""; static char *bsqr = ""; static char *top = "\t:::::::::::::::::::::\n"; @@ -1081,110 +1098,125 @@ static int board_read_file(char *category, char *gname, struct game_state_t *gs) onNewLine = 0; } else { switch (c) { - case 'P': - onPiece = PAWN; - break; - case 'R': - onPiece = ROOK; - break; - case 'N': - onPiece = KNIGHT; + case 'A': + onPiece = CARDINAL; break; case 'B': onPiece = BISHOP; break; - case 'A': - onPiece = CARDINAL; - break; case 'C': onPiece = MARSHALL; break; - case 'M': - onPiece = MAN; - break; - case 'Q': - onPiece = QUEEN; - break; - case 'T': - onPiece = ELEPHANT; + case 'D': + onPiece = SELEPHANT; break; case 'E': onPiece = ALFIL; break; - case 't': - onPiece = ALFIL2; - break; - case 'q': - onPiece = FERZ; - break; case 'F': onPiece = FERZ2; break; - case 'W': - onPiece = WAZIR; + case 'G': + onPiece = GOLD; break; - case 'w': - onPiece = WOODY; + case 'H': + onPiece = HORSE; break; - case 'p': - onPiece = PRIESTESS; + case 'I': + onPiece = DRAGONHORSE; break; - case 'r': - onPiece = MINISTER; + case 'J': + onPiece = DRAGONKING; break; - case 'z': - onPiece = MAN2; + case 'K': + onPiece = KING; break; - case 'u': - onPiece = NIGHTRIDER; + case 'L': + onPiece = LANCE; break; - case 'o': - onPiece = MODERNELEPHANT; + case 'M': + onPiece = MAN; break; - case 's': - onPiece = MASTODON; + case 'N': + onPiece = KNIGHT; break; - case 'Z': - onPiece = AMAZON; + case 'O': + onPiece = CANNON; + break; + case 'P': + onPiece = PAWN; + break; + case 'Q': + onPiece = QUEEN; + break; + case 'R': + onPiece = ROOK; + break; + case 'S': + onPiece = SILVER; + break; + case 'T': + onPiece = ELEPHANT; + break; + case 'U': + onPiece = HAWK; break; case 'V': onPiece = CENTAUR; break; - case 'H': - onPiece = HORSE; + case 'W': + onPiece = WAZIR; + break; + case 'X': + onPiece = WARLORD; + break; + case 'Y': + onPiece = GENERAL; + break; + case 'Z': + onPiece = AMAZON; + break; + case 'm': + onPiece = MANDARIN; break; case 'n': onPiece = HONORABLEHORSE; break; - case 'J': - onPiece = DRAGONKING; + case 'o': + onPiece = MODERNELEPHANT; break; - case 'I': - onPiece = DRAGONHORSE; + case 'p': + onPiece = PRIESTESS; break; - case 'L': - onPiece = LANCE; + case 'q': + onPiece = FERZ; break; - case 'O': - onPiece = CANNON; + case 'r': + onPiece = MINISTER; break; - case 'S': - onPiece = SILVER; + case 's': + onPiece = MASTODON; break; - case 'G': - onPiece = GOLD; + case 't': + onPiece = ALFIL2; break; - case 'm': - onPiece = MANDARIN; + case 'u': + onPiece = NIGHTRIDER; break; - case 'K': - onPiece = KING; + case 'v': + onPiece = HOPLITE; break; - case 'D': - onPiece = SELEPHANT; + case 'w': + onPiece = WOODY; break; - case 'U': - onPiece = HAWK; + case 'x': + onPiece = LIEUTENANT; + break; + case 'y': + onPiece = CAPTAIN; + break; + case 'z': + onPiece = MAN2; break; case 'a': case 'b':