private bool TryToSwitchToNiceHangman()
        {
            if (PossibleWordsBank.Count == 1)
            {
                NiceHangmanGame = new HangmanGame(PossibleWordsBank.First());
                NiceHangmanGame.Start();
                return(true);
            }

            return(false);
        }
        private string GetPrintableWord(IHangmanGame hangmanGame)
        {
            var sb = new StringBuilder();

            for (var i = 0; i < hangmanGame.WordLength; i++)
            {
                sb.Append(hangmanGame.GuessedLetter.TryGetValue(i, out var letter) ? letter.ToString() : "-");
            }

            return(sb.ToString());
        }
예제 #3
0
        static void Main(string[] args)
        {
            
            TwangManSays("********************************************");
            TwangManSays("*        TWANGMAN - CONSOLE TEST           *");
            TwangManSays("********************************************");
            TwangManSays("Give me a clue");
            
            var initialClue = NumptySays();
            try
            {
                Game = new HangmanGame(initialClue);
                ShowGameState();
                do
                {
                    if(Game.WrongGuesses.Any())
                    {
                        TwangManSays(string.Format("I've already tried : {0}",string.Join(",",Game.WrongGuesses)));
                    }
                    TwangManSays(string.Format("I'm going to guess: {0}", Game.Guess()));
                    TwangManSays("How did I do?");
                    var nextClue = NumptySays();
                    Game.Clue(nextClue);
                    ShowGameState();
                } while (!Game.IsOver);
                
                if(Game.HangmanLost)
                {
                    TwangManSays("*** Congratulations - you beat me ***", ConsoleColor.Yellow);
                }
                else
                {
                    TwangManSays(string.Format("I'm going to guess {0}",Game.Dictionary.Words.First()),ConsoleColor.Yellow);
                    TwangManSays("Did I get it?", ConsoleColor.Yellow);
                }
            }
            catch (ArgumentException ex)
            {
                Game = null;
                Console.ForegroundColor = ConsoleColor.DarkRed;
                Console.WriteLine(string.Format("I don't understand your clue:{0}",ex.Message));
            }
           

            Console.ReadKey();
        }
예제 #4
0
 public GameRoomServiceAsync(IHangmanRepositoryAsync <GameRoom> repository,
                             IHangmanRepositoryAsync <GameRoomPlayer> repositoryGameRoomPlayer,
                             IHangmanRepositoryAsync <GuessLetter> repositoryGuessLetter,
                             IHangmanRepositoryAsync <GuessWord> repositoryGuessWord,
                             IHangmanRepositoryAsync <GameRound> repositoryGameRound,
                             IHangmanRepositoryAsync <Player> repositoryPlayer,
                             ILogger <GameRoomServiceAsync> logger,
                             IHangmanGame gameLogic,
                             IMapper mapper
                             )
 {
     _repositoryGameRoomPlayer = repositoryGameRoomPlayer;
     _repositoryGuessLetter    = repositoryGuessLetter;
     _repositoryGameRound      = repositoryGameRound;
     _repositoryGuessWord      = repositoryGuessWord;
     _repositoryPlayer         = repositoryPlayer;
     _repository = repository;
     _gameLogic  = gameLogic;
     _logger     = logger;
     _mapper     = mapper;
 }
 public static string DrawHangman(IHangmanGame game)
 {
     var sb = new StringBuilder();
     switch (game.RemainingGuesses)
     {
         case 0:
             
             sb.AppendLine("____");
             sb.AppendLine("|/ ¦");
             sb.AppendLine("|  0");
             sb.AppendLine("| -|-");
            sb.AppendLine(@"| / \");
             sb.AppendLine("¨¨¨¨¨¨");
             return sb.ToString();
             break;
         case 1:
             sb.AppendLine("____");
             sb.AppendLine("|/ ¦");
             sb.AppendLine("|  0");
             sb.AppendLine("| -|-");
            sb.AppendLine(@"| /");
             sb.AppendLine("¨¨¨¨¨¨");
             return sb.ToString();
             break;
         case 2:
             sb.AppendLine("____");
             sb.AppendLine("|/ ¦");
             sb.AppendLine("|  0");
             sb.AppendLine("| -|-");
            sb.AppendLine(@"|");
             sb.AppendLine("¨¨¨¨¨¨");
             return sb.ToString();
             break;
         case 3:
             sb.AppendLine("____");
             sb.AppendLine("|/ ¦");
             sb.AppendLine("|  0");
             sb.AppendLine("| -|");
             sb.AppendLine("|");
             sb.AppendLine("¨¨¨¨¨¨");
             return sb.ToString();
             break;
         case 4:
             sb.AppendLine("____");
             sb.AppendLine("|/ ¦");
             sb.AppendLine("|  0");
             sb.AppendLine("|  |");
            sb.AppendLine( "|");
             sb.AppendLine("¨¨¨¨¨¨");
             return sb.ToString();
             break;
         case 5:
             sb.AppendLine("____");
             sb.AppendLine("|/ ¦");
             sb.AppendLine("|  0");
             sb.AppendLine("|");
             sb.AppendLine("|");
             sb.AppendLine("¨¨¨¨¨¨");
             return sb.ToString();
             break;
         case 6:
             sb.AppendLine("____");
             sb.AppendLine("|/");
             sb.AppendLine("|");
             sb.AppendLine("|");
             sb.AppendLine("|");
             sb.AppendLine("¨¨¨¨¨¨");
             return sb.ToString();
             break;
         case 7:
             sb.AppendLine(" ");
             sb.AppendLine("|");
             sb.AppendLine("|");
             sb.AppendLine("|");
             sb.AppendLine("|");
             sb.AppendLine("¨¨¨¨¨¨");
             return sb.ToString();
             break;
         default:
             sb.AppendLine(" ");
             sb.AppendLine(" ");
             sb.AppendLine(" ");
             sb.AppendLine(" ");
             sb.AppendLine(" ");
             sb.AppendLine("¨¨¨¨¨¨");
             return sb.ToString();
             break;
     }
 }
 private string GetPrintableTriedLetters(IHangmanGame hangmanGame)
 {
     return(string.Join("", hangmanGame.TriedLetters.Distinct().OrderBy(x => x)));
 }
 public HangmanController(IHangmanGame hangmanGame)
 {
     this.hangmanGame = hangmanGame;
 }