Exemple #1
0
        static void Main(string[] args)
        {
            var generator = new LettergonGenerator("words58k.txt");

            while (true)
            {
                var pangramLength = 7;
                var puzzle        = generator.CreatePuzzle(pangramLength, 4);
                var found         = new SortedDictionary <string, bool>();
                foreach (var pair in puzzle.Words)
                {
                    found[pair] = false;
                }
                var remaining     = found.Count;
                var puzzleLetters = new string(puzzle.Letters);
                var keyPointer    = "^".PadLeft(puzzle.KeyLetterIndex + 1);
                Console.WriteLine("Letters: " + puzzleLetters);
                Console.WriteLine("Key:     " + keyPointer);
                Console.WriteLine();

                while (remaining > 0)
                {
                    Console.WriteLine("Enter word ({0} of {1} remaining):", remaining, found.Count);
                    var word = Console.ReadLine();
                    if (word == null)
                    {
                        return;
                    }
                    if (word == "?")
                    {
                        Console.WriteLine("Letters: " + puzzleLetters);
                        Console.WriteLine("Key:     " + keyPointer);
                        Console.WriteLine();
                        PrintWords(pangramLength, found, false);
                        Console.WriteLine();
                        continue;
                    }

                    if (word == "***")
                    {
                        break;
                    }

                    word = word.ToLower();
                    if (!found.TryGetValue(word, out var isFound))
                    {
                        Console.WriteLine("Not a valid word");
                    }
                    else if (isFound)
                    {
                        Console.WriteLine("Already found!");
                    }
                    else
                    {
                        found[word] = true;
                        remaining--;
                        Console.WriteLine(word.Length == pangramLength ? "Pangram found!" : "Word found!");
                    }
                }

                if (remaining == 0)
                {
                    Console.WriteLine("You win!");
                }
                PrintWords(pangramLength, found, true);
                Console.WriteLine();
            }
        }
Exemple #2
0
 static PuzzleController()
 {
     Generator = Loader.Generator;
 }
Exemple #3
0
 public RoomManager(LettergonGenerator generator, int maxPlayersPerRoom)
 {
     _generator         = generator;
     _maxPlayersPerRoom = maxPlayersPerRoom;
 }
Exemple #4
0
 public Room(RoomManager manager, LettergonGenerator generator, string name)
 {
     _manager   = manager;
     _generator = generator;
     _name      = name;
 }
Exemple #5
0
        static Loader()
        {
            var wordFile = ConfigurationManager.AppSettings["WordFile"];

            Generator = new LettergonGenerator(HostingEnvironment.MapPath(wordFile));
        }