Как сделать так, чтобы мой код генерировал только одного случайного монстра?
Random random = new Random(); int character = 15; int mobhp = 100; bool d = false; Console.WriteLine("You are an adventuurer."); Console.WriteLine("you are walking across the forest when suddenly you encounter a"); string monsters = "d"; string [] monster = {"imp", "goblin", "hobgoblin",}; monsters = (monster[(random.Next(0, 3))]); Console.WriteLine(monsters); switch (monsters){ case "goblin": mobhp = 11; d = true; break; case "imp": mobhp = 8; d = true; break; case "hobgoblin": mobhp = 15; d = true; break; } string hit = "attack"; string regenerate = "heal"; string escape = "run"; while(character > 0){ string entry = Console.ReadLine(); switch (entry){ case "hit": mobhp = mobhp - 4; Console.WriteLine("You attacked it!"); Console.WriteLine("now its the monster's turn"); Console.WriteLine("the monster attacked you"); character = character - 4; Console.WriteLine("you have"); Console.WriteLine(character); Console.WriteLine("hp left"); break; case "regenerate": character = character + 2; Console.WriteLine("you heald 2 hp"); Console.WriteLine("now its the monster's turn"); Console.WriteLine("the monster attacked you"); character = character - 4; Console.WriteLine("you have"); Console.WriteLine(character); Console.WriteLine("hp left"); break; case "escape": Console.WriteLine("you cant run away!"); Console.WriteLine("now its the monster's turn"); Console.WriteLine("the monster attacked you"); character = character - 4; Console.WriteLine("you have"); Console.WriteLine(character); Console.WriteLine("hp left"); break; } if (mobhp < 1){ Console.WriteLine ("you killed the monster and you went on your way."); System.Environment.Exit(1); } } }}
Что я уже пробовал:
я пробовал использовать цикл while и цикл for. ни один из них не работает.
CHill60
Вы создаете монстра вне вашего цикла while (цикл атаки), поэтому вы создаете только одного. Более того, вы фактически выходите из своей программы после убийства монстра. Так в чем же собственно проблема?
CHill60
Кроме того ... вместо того, чтобы
Console.WriteLine("you have"); Console.WriteLine(character); Console.WriteLine("hp left");используйте составное форматирование
Console.WriteLine("You have {0} hp left.", character);или интерполяция строк
Console.WriteLine($"You have {character} hp left.");Это сделает ваш код намного аккуратнее и проще для чтения
Вот ссылки на них:
Составное форматирование | Microsoft Docs[^]
$ - строковая интерполяция - Справочник по C# | Microsoft Docs[^]
Ultra960
всякий раз, когда я говорю свое действие, оно создает другого случайного монстра и заменяет старого монстра.