public void ComputerDrawsCard(Messages gameMessages)
        {
            Card drawnCard = Deck.DrawCard();
            this.ComputerScore += drawnCard.GetValue();
            Console.WriteLine("BAE-BOT drew: \"{0}\". His current score is: {1}.", drawnCard.GetFace(), this.ComputerScore);

            if (ComputerScore == 21)
            {
                Console.WriteLine(gameMessages.BlackJackBanner);
                this.ComputerWon = true;
                Console.WriteLine(gameMessages.RandomComputerWonMessage(Deck));
                QuitGame();
            }

            if (ComputerScore > 21)
            {
                Console.WriteLine(gameMessages.BustBanner);
                this.UserWon = true;
                Console.WriteLine(gameMessages.RandomUserWonMessage(Deck));
                QuitGame();
            }
        }
        static void Main(string[] args)
        {
            // I'm leaving in some class identifiers on purpose. It's easier for me to learn that way for now. 
            Messages gameMessages = new Messages();
            Console.WriteLine(gameMessages.WelcomeMessage);
            Game newGame = new Game();

            newGame.PromptForRules(gameMessages);

            Console.WriteLine(gameMessages.StartMessage);
            newGame.ComputerDrawsCard(gameMessages);
            newGame.ComputerDrawsCard(gameMessages);

            Console.WriteLine(gameMessages.UserFirstDrawPrompt);
            Console.ReadLine();
            newGame.UserDrawsCard(gameMessages);
            newGame.UserDrawsCard(gameMessages);

            while (!newGame.ComputerWon || !newGame.UserWon)
            {
                newGame.UserDrawDecision(gameMessages);
                newGame.ComputerDrawDecision(gameMessages);
            }
        }
        public void ComputerDrawDecision(Messages gameMessages)
        {
            Console.WriteLine("\nBAE BOT is making his move.");

            int randomNumber = Deck.RandomGenerator.Next(0, 2);

            if (UserScore == 20)
                this.ComputerDrawsCard(gameMessages);
            else if (ComputerScore < 18)
                this.ComputerDrawsCard(gameMessages);
            else if (ComputerScore < 18 && ComputerScore > 15 && randomNumber == 1)
                this.ComputerDrawsCard(gameMessages);
            else if (ComputerScore == UserScore)
                this.ComputerDrawsCard(gameMessages);
            else
                this.ComputerStands(gameMessages);
        }
 public void UserDrawDecision(Messages gameMessages)
 {
     Console.WriteLine("\nMake Your Choice: Press Enter to draw a card \n(or press \"S\" and Enter to \"stand\".)");
     if (Console.ReadLine().ToUpperInvariant() == "S")
     {
         Console.WriteLine(gameMessages.UserStandsMessage);
         this.CheckIfUserIsCloserTo21(gameMessages);
     }
     else
         this.UserDrawsCard(gameMessages);
 }
 /* 
 I wonder if it would be helpful to make one player class for both players or alternatively a class for each player.
 Would it make sense to have "drawn" as a property of a card, like a "flag"?
 Also, should I make just one method called move rather than one for each player?
 Make as many methods universal as possible and leave the specifitiy in the messages?
 But the more I do that, the more I have to "pass around" parameters calling methods from classes all over 
 */
 public void PromptForRules(Messages gameMessages)
 {
     Console.WriteLine("\nPress R and Enter to display the Rules or Enter to continue");
     if (Console.ReadLine().ToUpperInvariant() == "R")
         Console.WriteLine(gameMessages.GameRules);
 }
 public void CheckIfComputerIsCloserTo21(Messages gameMessages)
 {
     if (ComputerScore > UserScore)
     {
         Console.WriteLine(gameMessages.ComputerCloserTo21WinMessage);
         QuitGame();
     }
 }
 public void ComputerStands(Messages gameMessages)
 {
     Console.WriteLine(gameMessages.ComputerStandsMessage);
     this.CheckIfComputerIsCloserTo21(gameMessages);
 }