src/game.c

changeset 25
3ab0c2e1a4e2
parent 23
824c9522ce66
child 26
e0a76ee1bb2b
equal deleted inserted replaced
24:4d030da07c88 25:3ab0c2e1a4e2
84 printw("%d. ", logi / 2); 84 printw("%d. ", logi / 2);
85 } 85 }
86 86
87 if (logelem) { 87 if (logelem) {
88 Move move = logelem->move; 88 Move move = logelem->move;
89 char logstr[] = { 89 if ((move.piece&PIECE_MASK) == KING &&
90 getpiecechr(move.piece), 90 abs(move.tofile-move.fromfile) == 2) {
91 filechr(move.fromfile), rowchr(move.fromrow), 91 addstr(move.tofile==fileidx('c')?"O-O-O":"O-O");
92 move.capture ? 'x':'\0', 92 } else {
93 filechr(move.tofile), rowchr(move.torow), 93 char logstr[] = {
94 move.check ? '+' : (move.checkmate ? '#' : 94 getpiecechr(move.piece),
95 (move.promotion ? '=' : '\0')), 95 filechr(move.fromfile), rowchr(move.fromrow),
96 move.promotion ? getpiecechr(move.promotion) : '\0', 96 move.capture ? 'x':'\0',
97 ' ' 97 filechr(move.tofile), rowchr(move.torow),
98 }; 98 move.check ? '+' : (move.checkmate ? '#' :
99 for (int stri = 0 ; stri < sizeof(logstr) ; stri++) { 99 (move.promotion ? '=' : '\0')),
100 if (logstr[stri]) { 100 move.promotion ? getpiecechr(move.promotion) : '\0'
101 addch(logstr[stri]); 101 };
102 } 102 for (int stri = 0 ; stri < sizeof(logstr) ; stri++) {
103 } 103 if (logstr[stri]) {
104 addch(logstr[stri]);
105 }
106 }
107 }
108 addch(' ');
104 109
105 logelem = logelem->next; 110 logelem = logelem->next;
106 } 111 }
107 } 112 }
108 } 113 }

mercurial