public static string RandomWordGen(int category) { string[][] wordsForTheGame = new string[11][]; //11 strings for 11 categories wordsForTheGame[0] = File.ReadAllLines (Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Words\Countries.txt")); wordsForTheGame[1] = File.ReadAllLines (Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Words\City.txt")); wordsForTheGame[2] = File.ReadAllLines (Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Words\River.txt")); wordsForTheGame[3] = File.ReadAllLines (Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Words\Mountains.txt")); wordsForTheGame[4] = File.ReadAllLines (Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Words\Animal.txt")); wordsForTheGame[5] = File.ReadAllLines (Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Words\Plants.txt")); wordsForTheGame[6] = File.ReadAllLines (Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Words\Cars.txt")); wordsForTheGame[7] = File.ReadAllLines (Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Words\Lectors.txt")); wordsForTheGame[8] = File.ReadAllLines (Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Words\islands.txt")); wordsForTheGame[9] = File.ReadAllLines (Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Words\planets.txt")); wordsForTheGame[10] = File.ReadAllLines (Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Words\flowers.txt")); int numberOfWord = GameMethods.GiveMeRandomNum((int)0, wordsForTheGame[category].Length - 1); // this is the range of the arrey (0, wordsForTheGame[category].Length - 1) return(wordsForTheGame[category][numberOfWord].Trim().ToLower()); }
static void Main() { Console.WindowHeight = 30; Console.WindowWidth = 90; Console.BufferHeight = 30; Console.BufferWidth = 90; Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; Console.InputEncoding = Encoding.Unicode; Console.OutputEncoding = Encoding.Unicode; string doYouWantToPlayAgain = "д"; do { Console.Clear(); int temp = GameMethods.StartMenu(); // say HI and play = 1 or add word = 0 if (temp == 1) { Console.Clear(); GameMethods.PrintMenu(); //topics } else if (temp == 0) // add word and return to start menu () { bool nextWord = GameMethods.AddWord(); while (nextWord) { nextWord = GameMethods.AddWord(); } continue; } string categoryStr; int category; Console.ForegroundColor = ConsoleColor.DarkCyan; Console.Write("Въведете число от 1 до 11: "); do { categoryStr = Console.ReadLine(); if (!GameMethods.IsValidNum1_11(categoryStr)) { Console.Write("Въведете число от 1 до 11: "); } } while (!GameMethods.IsValidNum1_11(categoryStr)); category = int.Parse(categoryStr); string theWord = GameMethods.RandomWordGen(category - 1); // random word for hangman GameMethods.GamePlay(theWord, category); // guess the word Console.ResetColor(); Console.SetCursorPosition(23, 16); Console.WriteLine("Нова игра? Д/Н"); do { doYouWantToPlayAgain = Console.ReadLine().ToLower(); if (doYouWantToPlayAgain != "н" && doYouWantToPlayAgain != "д") { Console.SetCursorPosition(12, 17); Console.WriteLine("Нова игра? Връщане в главно меню? Д/Н"); } } while (doYouWantToPlayAgain != "н" && doYouWantToPlayAgain != "д"); } while (doYouWantToPlayAgain == "д"); }
public static void GamePlay(string theWord, int category) { Console.Clear(); string[] cetegoryStrMass = { "Държави", "Градове в България", "Реки в България", "Планини", "Животни", "Растения", "Автомобили (марки/модели)", "Лектори в СофтУни", "Острови", "Планети", "Цветя" }; char[] theWordInArrey = theWord.ToCharArray(); char[] hidenWordArrey = new char[theWordInArrey.Length]; int lettersInWord = 0; for (int i = 0; i < theWordInArrey.Length; i++) { if (theWordInArrey[i] != ' ') { hidenWordArrey[i] = '_'; lettersInWord++; } else { hidenWordArrey[i] = ' '; } } Console.ForegroundColor = ConsoleColor.DarkCyan; Console.WriteLine(String.Join(" ", hidenWordArrey)); Console.Write("Въведете буква: "); List <string> enterdLetters = new List <string>(); string letter = Console.ReadLine(); //added validation for input letter while (letter.Length > 1 || letter == " " || letter == String.Empty) { Console.ForegroundColor = ConsoleColor.DarkCyan; Console.WriteLine("Моля, въведете само една буква :)"); Console.Write("Въведете буква: "); letter = Console.ReadLine(); } while (!GameMethods.IsValidLetter(letter)) { Console.ForegroundColor = ConsoleColor.DarkCyan; Console.WriteLine("Моля, въведете буква от А до Я."); Console.Write("Въведете буква: "); letter = Console.ReadLine(); } enterdLetters.Add(letter); int counterForErrors = 0; while (true) { Console.Clear(); bool guesLetter = false; int howManyLettertAreGuested = 0; Console.SetCursorPosition(0, 1); Console.WriteLine("Категория: {0}", cetegoryStrMass[category - 1]); Console.SetCursorPosition(0, 2); Console.ForegroundColor = ConsoleColor.DarkCyan; Console.WriteLine("Въведохте буквите: \n\r{0}", String.Join(", ", enterdLetters)); for (int i = 0; i < theWordInArrey.Length; i++) { char currentEnteredChar = Convert.ToChar(letter); if (currentEnteredChar == theWordInArrey[i]) { hidenWordArrey[i] = theWordInArrey[i]; guesLetter = true; } if (hidenWordArrey[i] == theWordInArrey[i] && hidenWordArrey[i] != ' ') { howManyLettertAreGuested++; } } if (guesLetter == false) { counterForErrors++; } Console.ForegroundColor = ConsoleColor.DarkCyan; Console.WriteLine("Остават Ви {0} грешни опита! \n\r", 9 - counterForErrors); Console.WriteLine(String.Join(" ", hidenWordArrey)); Console.WriteLine(); GameMethods.DrawingGallowAndHangman(counterForErrors); if (counterForErrors == 9) { Console.ForegroundColor = ConsoleColor.Gray; Console.BackgroundColor = ConsoleColor.DarkRed; Console.SetCursorPosition(15, 15); Console.WriteLine("Играта свърши!!! Обесени сте!!!!"); break; } if (howManyLettertAreGuested == lettersInWord) { Console.ForegroundColor = ConsoleColor.Blue; Console.SetCursorPosition(20, 15); Console.WriteLine("ЧЕСТИТО!!! СПЕЧЕЛИ!!!"); GameMethods.PlayMusic(); break; } Console.SetCursorPosition(0, 8); Console.ForegroundColor = ConsoleColor.DarkCyan; Console.Write("Въведете буква: "); letter = Console.ReadLine(); //added validation for input letter while (letter.Length > 1 || letter == " " || letter == String.Empty) { Console.ForegroundColor = ConsoleColor.DarkCyan; Console.WriteLine("Моля, въведете само една буква :)"); Console.Write("Въведете буква: "); letter = Console.ReadLine(); } while (!GameMethods.IsValidLetter(letter)) { Console.ForegroundColor = ConsoleColor.DarkCyan; Console.WriteLine("Моля, въведете буква от А до Я."); Console.Write("Въведете буква: "); letter = Console.ReadLine(); } enterdLetters.Add(letter); } }