src/chess/rules.c

changeset 144
c3ae96ed44d1
parent 139
fa10bee331ac
equal deleted inserted replaced
143:e9159c70ff9e 144:c3ae96ed44d1
725 if (len < 1 || len > 6) { 725 if (len < 1 || len > 6) {
726 return INVALID_MOVE_SYNTAX; 726 return INVALID_MOVE_SYNTAX;
727 } 727 }
728 728
729 /* evaluate check/checkmate flags */ 729 /* evaluate check/checkmate flags */
730 if (mstr[len-1] == '+') { 730 if (mstr[len-1] == '+' || mstr[len-1] == '#') {
731 len--; mstr[len] = '\0'; 731 len--; mstr[len] = '\0';
732 move->check = 1; 732 move->check = true;
733 } else if (mstr[len-1] == '#') {
734 len--; mstr[len] = '\0';
735 /* ignore - validation should set game state */
736 } 733 }
737 734
738 /* evaluate promotion */ 735 /* evaluate promotion */
739 if (len > 3 && mstr[len-2] == '=') { 736 if (len > 3 && mstr[len-2] == '=') {
740 move->promotion = getpiece(mstr[len-1]); 737 move->promotion = getpiece(mstr[len-1]);

mercurial