Advertisement
SaNik74

ConsoleMenu

Feb 18th, 2023 (edited)
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.62 KB | None | 0 0
  1. internal class Program
  2. {
  3.     static void Main(string[] args)
  4.     {
  5.         const string GoToWorkCommand = "GoToTheWork";
  6.         const string CreateWorkerCommand = "CreateWorker";
  7.         const string GoToSleepCommand = "GoToSleep";
  8.         const string PushOnRedButtonCommand = "PushOnRedButton";
  9.  
  10.         Random random = new Random();
  11.         int gameDay = 1;
  12.         int resourceSpentToCreateWorker = 2;
  13.         int wasteOfEnergyAtWork = 1;
  14.         int energyIncreaseForWorker = 1;
  15.         int minEnergyInitialValues = 6;
  16.         int maxEnergyInitialValues = 11;
  17.         int minResourcesInitialValues = 11;
  18.         int maxResourcesInitialValues = 100;
  19.         int minWorkersInitialValues = 1;
  20.         int maxWorkersInitialValues = 5;
  21.         int energy = random.Next(minEnergyInitialValues, maxEnergyInitialValues);
  22.         int resources = random.Next(minResourcesInitialValues, maxResourcesInitialValues);
  23.         int numberOfWorkers = 0;
  24.         int livedDays = 1;
  25.         bool isConditionsNotMet = true;
  26.         bool isWorking = true;
  27.         string? userInput;
  28.  
  29.         while (isConditionsNotMet)
  30.         {
  31.             int maxStartNumberOfWorkers = 5;
  32.  
  33.             Console.Write($"Введите кол-во рабочих от {minWorkersInitialValues} до {maxWorkersInitialValues}: ");
  34.             numberOfWorkers = Convert.ToInt32(Console.ReadLine());
  35.  
  36.             if (numberOfWorkers > maxStartNumberOfWorkers || numberOfWorkers < minWorkersInitialValues)
  37.             {
  38.                 numberOfWorkers = 0;
  39.                 Console.WriteLine("Вы ввели недопустимое количество рабочих." +
  40.                     "Попробуйте еще раз.\nНажмите любую клавишу...");
  41.                 Console.ReadKey();
  42.                 Console.Clear();
  43.             }
  44.             else
  45.             {
  46.                 resources -= resourceSpentToCreateWorker * numberOfWorkers;
  47.                 isConditionsNotMet = false;
  48.             }
  49.         }
  50.  
  51.         Console.WriteLine($"Добро пожаловать в игру!\n" +
  52.             $"У вас есть {resources} ресурсов, {energy} энергии и {numberOfWorkers} рабочих.\n" +
  53.             $"Вам необходимо увеличивать кол-во ресурсов, но если показатель" +
  54.             $"энергии или ресурсов будет равен 0, вы проиграли.\n" +
  55.             $"На создание одного рабочего уходит {resourceSpentToCreateWorker} ресурсов.\n" +
  56.             $"Отправив рабочих собирать ресурсы, вы тратите {wasteOfEnergyAtWork} энергии\n" +
  57.             $"Для увеличения энергии отправьте рабочих спать. Так вы востановите " +
  58.             $"по {energyIncreaseForWorker} энергии и прибавите {gameDay} игровой день.\n" +
  59.             $"Хорошей игры!\n" +
  60.             $"Нажмите любую клавишу...");
  61.  
  62.         Console.ReadKey();
  63.         Console.Clear();
  64.  
  65.         while (isWorking)
  66.         {
  67.             Console.WriteLine($"День {livedDays}\n\nРабочие = {numberOfWorkers}\n" +
  68.                 $"Энергия = {energy}\nРесурсы = {resources}\n\n");
  69.             Console.WriteLine($"Чтобы отправит работников собирать ресурсы введите - {GoToWorkCommand}.\n" +
  70.                 $"Чтобы добавить работника введите - {CreateWorkerCommand}\nДля восстановления энергии введите - {GoToSleepCommand}.\n" +
  71.                 $"Для выхода из программы введите - {PushOnRedButtonCommand}");
  72.             Console.Write("Введите команду: ");
  73.  
  74.             userInput = Console.ReadLine();
  75.  
  76.             switch (userInput)
  77.             {
  78.                 case GoToWorkCommand:
  79.                     int addResourceAfterWork = 2;
  80.                     energy -= wasteOfEnergyAtWork * numberOfWorkers;
  81.                     resources += addResourceAfterWork * numberOfWorkers;
  82.                     break;
  83.  
  84.                 case CreateWorkerCommand:
  85.                     int createOneWorker = 1;
  86.                     resources -= resourceSpentToCreateWorker;
  87.                     numberOfWorkers += createOneWorker;
  88.                     break;
  89.  
  90.                 case GoToSleepCommand:
  91.                     energy += energyIncreaseForWorker;
  92.                     livedDays += gameDay;
  93.                     break;
  94.  
  95.                 case PushOnRedButtonCommand:
  96.                     Console.WriteLine("Вы выходите из игры.\nНажмите на любую клавишу...");
  97.                     Console.ReadKey();
  98.                     Console.Clear();
  99.                     isWorking = false;
  100.                     break;
  101.  
  102.                 default:
  103.                     Console.WriteLine("Неизвестная команда. Обратите внимание на регистр." +
  104.                         "\nНажмите на любую клавишу...");
  105.                     Console.ReadKey();
  106.                     break;
  107.             }
  108.  
  109.             Console.Clear();
  110.  
  111.             if (energy <= 0 || resources <= 0)
  112.             {
  113.                 Console.WriteLine($"Вы проиграли. Продержались {livedDays} дней." +
  114.                     $"\nНажмите на любую клавишу...");
  115.                 Console.ReadKey();
  116.                 isWorking = false;
  117.             }
  118.         }
  119.     }
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement