private static void SetUpPlayers(string humanPlayerSymbol, string computerPlayerSymbol, out ComputerPlayer computerPlayer, out HumanPlayer humanPlayer) { computerPlayer = new ComputerPlayer(computerPlayerSymbol); humanPlayer = new HumanPlayer(new InputChecker(), humanPlayerSymbol); }
private static string Play(Board board, string humanPlayerSymbol, string computerPlayerSymbol, ComputerPlayer computerPlayer, HumanPlayer humanPlayer, BoardConsoleRenderer renderer, WinnerReferee referee) { var winner = string.Empty; while (string.IsNullOrEmpty(winner)) { computerPlayer.Move(board); Console.WriteLine(renderer.Render(board)); winner = referee.CheckWinner(board, computerPlayerSymbol); referee.AnnounceWinner(winner); if (!string.IsNullOrEmpty(winner)) { break; } if (board.Squares.All(x => !string.IsNullOrEmpty(x))) { break; } humanPlayer.Move(board); Console.WriteLine(renderer.Render(board)); winner = referee.CheckWinner(board, humanPlayerSymbol); referee.AnnounceWinner(winner); if (!string.IsNullOrEmpty(winner)) { break; } if (board.Squares.All(x => !string.IsNullOrEmpty(x))) { break; } } return(winner); }