private void EnsureIsPlayerTurn(Board board, MovesLog movesLog, Location from)
        {
            var playerColor  = board.GetPieceAt(from).Color;
            var turnsTracker = new TurnsTracker(movesLog);

            if (!turnsTracker.IsTurnFor(playerColor))
            {
                throw new Exception("Wrong player moving");
            }
        }
示例#2
0
        public void SelectPieceAt(Location location)
        {
            var board = movesReplayer.Board;
            var piece = board.GetPieceAt(location);

            var availableMoves = turnsTracker.IsTurnFor(piece.Color) ?
                                 pieceMover.GetAvailableMoves(board, movesReplayer.MovesLog, location) :
                                 Array.Empty <IMove>();

            SelectedPiece = new PieceSelection(location, piece, availableMoves);
        }