public void Run() { StartGame(); SetPlayersName(); bool start = ConsoleService.AskStart(name); if (start) { _deckService.Initialize(); int cardsInDeck = CountDecksCards(_game.Deck); ConsoleService.CardsInDeck(cardsInDeck); _deckService.Deal(_game.Player1); _deckService.Deal(_game.Player2); ConsoleService.FirstDeal(); bool finished = false; while (!finished) { bool takeFirstPlayer = true; bool takeSecondPlayer = true; string player1Cards = ConsoleService.GetHand(_game.Player1); string player2Cards = ConsoleService.GetHand(_game.Player2); int player1Points = ConsoleService.GetPlayerScore(_game.Player1); int player2Points = ConsoleService.GetPlayerScore(_game.Player2); cardsInDeck = CountDecksCards(_game.Deck); ConsoleService.CardsInDeck(cardsInDeck); string infoPlayer1 = ConsoleService.GetPlayerInfo(_game.Player1); string infoPlayer2 = ConsoleService.GetPlayerInfo(_game.Player2); takeFirstPlayer = GetTheDealForPlayers(_game.Player1, takeFirstPlayer); takeSecondPlayer = GetTheDealForComputer(_game.Player2, takeSecondPlayer); if (player1Points > Configuration.MAX_VALUE || player2Points > Configuration.MAX_VALUE || !takeFirstPlayer & !takeSecondPlayer) { GetWinner(player1Points, player2Points); finished = true; } } } ConsoleService.Holder(); }
public void SetPlayersName() { bool nameIsValid = false; while (!nameIsValid) { if (name == string.Empty) { name = ConsoleService.AskName(); } if (name != string.Empty) { try { _game.Player1.Name = name; nameIsValid = true; } catch (Exception ex) { ConsoleService.Warn(ex.Message); } } } }
public bool GetTheDealForComputer(Player player, bool takeSecondPlayer) { int player2Points = ConsoleService.GetPlayerScore(_game.Player2); string infoPlayer2 = ConsoleService.GetPlayerInfo(_game.Player2); ConsoleService.Warn(infoPlayer2); while (takeSecondPlayer) { ConsoleService.AskComputerToTakeACard(_game.Player2.Name); player2Points = ConsoleService.GetPlayerScore(player); if (player2Points < Configuration.ACCEPTABLE_RISK & takeSecondPlayer) { _deckService.Deal(_game.Player2); infoPlayer2 = ConsoleService.GetPlayerInfo(_game.Player2); player2Points = ConsoleService.GetPlayerScore(_game.Player2); ConsoleService.Warn(infoPlayer2); if (player2Points >= Configuration.ACCEPTABLE_RISK) { takeSecondPlayer = false; } } } return(takeSecondPlayer = false); }
public bool GetTheDealForPlayers(Player player, bool takeFirstPlayer) { int player1Points = ConsoleService.GetPlayerScore(_game.Player1); string infoPlayer1 = ConsoleService.GetPlayerInfo(_game.Player1); ConsoleService.Warn(infoPlayer1); while (takeFirstPlayer) { player1Points = ConsoleService.GetPlayerScore(player); if (player1Points > Configuration.MAX_VALUE) { takeFirstPlayer = false; } takeFirstPlayer = ConsoleService.AskPlayerToTakeACard(_game.Player1.Name); if (player1Points <= Configuration.MAX_VALUE & takeFirstPlayer) { _deckService.Deal(_game.Player1); player1Points = ConsoleService.GetPlayerScore(_game.Player1); infoPlayer1 = ConsoleService.GetPlayerInfo(_game.Player1); ConsoleService.Warn(infoPlayer1); } } return(takeFirstPlayer = false); }