Beispiel #1
0
        /// <summary>
        /// Handles the guess.
        /// </summary>
        /// <param name="player">The player.</param>
        /// <param name="puzzle">The puzzle.</param>
        /// <param name="captureInput">The captureInput<see cref="ICaptureInput"/>.</param>
        /// <param name="spinResult">The $ amount of the spin.</param>
        /// <returns>The <see cref="bool"/>.</returns>
        private static bool HandleGuess(Player player, Puzzle puzzle, ICaptureInput captureInput, int spinResult)
        {
            Console.WriteLine("Please enter a letter:");
            string playerInput = captureInput.CaptureInput();

            while (playerInput.Length > 1 || string.IsNullOrEmpty(playerInput))
            {
                Console.WriteLine("Invalid entry, please try again.");
                playerInput = captureInput.CaptureInput();
            }

            int result = puzzle.GetNumberOfMatches(char.Parse(playerInput));

            if (!Console.IsOutputRedirected)
            {
                Console.Clear();
            }

            if (result > 0)
            {
                Console.ForegroundColor = ConsoleColor.Green;
                if (result == 1)
                {
                    Console.WriteLine($"There is 1 '{playerInput}'.");
                }
                else
                {
                    Console.WriteLine($"There are {result} '{playerInput}'s.");
                }
                player.RoundScore.AddAmount(result * spinResult);
                Console.ResetColor();
            }
            else
            {
                Console.ForegroundColor = ConsoleColor.Red;
                if (puzzle.DisplayPhrase().Contains(playerInput))
                {
                    Console.WriteLine($"Sorry {player.Name}, '{playerInput}' is already on the board, you lose your turn");
                }
                else
                {
                    Console.WriteLine($"Sorry {player.Name}, there are no '{playerInput}'s, you lose your turn");
                }
                Console.ResetColor();
            }

            return(result > 0);
        }
Beispiel #2
0
        /// <summary>
        /// The HandleTurn.
        /// </summary>
        /// <param name="player">The player.</param>
        /// <param name="puzzle">The puzzle.</param>
        /// <param name="captureInput">The captureInput<see cref="ICaptureInput"/>.</param>
        /// <param name="wheel">The wheel<see cref="IWheel"/>.</param>
        /// <returns><c>true</c> if the turn resulted in a successful guess; otherwise, <c>false</c>.</returns>
        public static bool HandleTurn(Player player, Puzzle puzzle, ICaptureInput captureInput, IWheel wheel)
        {
            Console.ForegroundColor = ConsoleColor.DarkYellow;
            Console.WriteLine(puzzle.DisplayPhrase());
            Console.ResetColor();

            bool   successfulGuess;
            string playerSelection = GetPlayerSelection(player, captureInput);

            if (playerSelection == "W")
            {
                successfulGuess = HandleSpin(player, puzzle, captureInput, wheel);
            }
            else
            {
                successfulGuess = HandleSolve(player, puzzle, captureInput);
            }

            return(successfulGuess);
        }
Beispiel #3
0
        /// <summary>
        /// Handles the solve.
        /// </summary>
        /// <param name="player">The player.</param>
        /// <param name="puzzle">The puzzle.</param>
        /// <param name="captureInput">The captureInput<see cref="ICaptureInput"/>.</param>
        /// <returns><c>true</c> if the guess was successful; otherwise, <c>false</c>.</returns>
        private static bool HandleSolve(Player player, Puzzle puzzle, ICaptureInput captureInput)
        {
            Console.WriteLine("Please enter your guess:");
            string playerInput = captureInput.CaptureInput();

            while (string.IsNullOrEmpty(playerInput))
            {
                Console.WriteLine("Invalid entry, please try again.");
                playerInput = captureInput.CaptureInput();
            }

            bool result = puzzle.PhraseMatches(playerInput);

            if (!Console.IsOutputRedirected)
            {
                Console.Clear();
            }

            if (result)
            {
                player.GameScore.AddAmount(player.RoundScore.GetBalance());
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine($"Congrats {player.Name}, you solved the puzzle!");
                Console.ForegroundColor = ConsoleColor.Cyan;
                Console.WriteLine(puzzle.DisplayPhrase());
                Console.ResetColor();
                Console.WriteLine($"Your total game balance is ${player.GameScore.GetBalance()}");
                Console.WriteLine("Please press enter to continue");
                captureInput.CaptureInput();
            }
            else
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine($"Sorry, {player.Name} that's incorrect, you lose your turn");
                Console.ResetColor();
            }
            return(result);
        }