public static void main(String[] args) {

		System.out.println("Welcome to Insight's Blackjack Game!");
		
		//	Create a new deck of cards for this game.
		gameDeck = new Deck();
		//	Create a new Dealer for this game.
		Dealer dealer = new Dealer();
		//	Create a new Player for this game. 
		Player player = new Player();
		
		//	Begin the game loop here. Reuse the same player, dealer, and deck if the player decides to keep playing.
		while(continueGame && player.getChips() > 0) {
			//	The player makes his/her initial bet in the constructor.
			betTotal += player.bet();

			System.out.println("\n");		
			System.out.println("Player's first hand deal.");		
			
			//	The dealer deals the player his/her first hand.
			dealer.deal(player);
			/**
			 * 	Check if the player's hand has an ace. If so, then calculate another total with the ace in the hand 
			 *  changed to an 11-value. The method 'reviewAceInHand' also checks for the occurrence of blackjack.
			 */
			checkHandForAces(player);

			System.out.println("\t\tYour current score for this round: " + player.getDefaultScore());		
			System.out.println("\n");		
			System.out.println("Dealer's first hand deal.");	
			
			//	The dealer deals his/her first hand.
			dealer.deal(dealer);
			/**
			 * 	Check if the dealer's hand has an ace. If so, then calculate another total with the ace in the hand 
			 *  changed to an 11-value. The method 'reviewAceInHand' also checks for the occurrence of blackjack.
			 */		
			checkHandForAces(dealer);
	
			//	The dealer keeps picking cards until his/her score is 17 <= x <= 21
			while(dealer.getDefaultScore() < 17) {
				System.out.println("The dealer keeps picking cards");
				pickCard(dealer);
				checkHandForAces(dealer);
			}
			
			System.out.println("\t\tDealer's current score for this round: " + dealer.getDefaultScore());
			System.out.println("\n");		
			System.out.println("Now that the hands have been dealt, you can now decide what to do next.");
			
			//	Check hands scores first before going into playerDecision loop for the player.
			reviewHands(dealer, player);
			
			//	Begin this round's loop
			while(continueRound) {
				/*	Keep asking the player for playerDecision to 'hit' or 'stand' if no game-stopping events
				 * 	like bust, tie, win, or lose occur or if the player decides to keep hitting.
				 */				
				keepRoundGoing(dealer, player);
			}		
			displayStats(dealer, player);
			
			System.out.println("\t\tThis round has ended!");
			
			//	Get the player's decision on whether or not the continue the game.
			System.out.println("Would you like continue the game?");
			System.out.print("Enter 'y' to continue the game, or 'n' to stop the game: ");
	        
			playerDecision = actionInput.nextLine();
	        
			while(!playerDecision.matches("[yY]|[nN]")) {
				System.out.println("\n");		
				System.out.println("Whoops! Looks like you've entered something weird. Try again!");
				System.out.println("Press 'y' to continue the game ");
				System.out.println("Press 'n' to stop the game ");
	            System.out.print("What would you like to do next?");
	            playerDecision = actionInput.nextLine();
			}
			
	        //	This block here checks if the input matches the hit or stand regular expressions.  
	        if(playerDecision.matches("[yY]")) {
				System.out.println("\n");		
				System.out.println("tNice, let's continue this game! :)");
				keepGameGoing(dealer, player);
	        } else {
				System.out.println("\n");		
				System.out.println("Hope you had fun playing blackjack! :)");   
				continueGame = false;
    			actionInput.close();
			}
		}
	}