public int Solve(Board board) { var otherPlayerSymbol = _boardAnalyser.GetOtherPlayerSymBol(board, _symbol); if (string.IsNullOrEmpty(otherPlayerSymbol)) { return(RandomGuess(board)); } var indexesOfAllUserInput = _boardAnalyser.GetAllIndexesOfPlayerInput(board, otherPlayerSymbol); var computerInput = BlockPossibleWinnerLine(indexesOfAllUserInput); return(string.IsNullOrEmpty(board.Squares[computerInput]) ? computerInput : RandomGuess(board)); }