Beispiel #1
0
        public bool IsInCheck(PieceColor playerColor)
        {
            var kingPosition = (0, 0);

            foreach (var piece in _grid)
            {
                var isPlayersKing = piece is King && piece.Color == playerColor;
                if (isPlayersKing)
                {
                    kingPosition = piece.Coordinates;
                }
            }

            return(_gridToQuery()
                   .Where(piece => piece.Color == playerColor.GetOpposingColor())
                   .Any(piece => piece.GetMoveOptions(this).Contains(kingPosition)));
        }
Beispiel #2
0
 public void OnEndTurn(object source, EndTurnEventArgs e)
 {
     _history.Push(e.Memento);
     _currentPlayer = _currentPlayer.GetOpposingColor();
 }