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"); } }
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); }