Advertisement
IGRODELOFF

HW: Boss Fight

Nov 3rd, 2024 (edited)
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.71 KB | None | 0 0
  1. using System;
  2.  
  3. namespace homeWorkBossFight
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             const string CommandSimpleAttack = "1";
  10.             const string CommandFireBallAttack = "2";
  11.             const string CommandBlastAttack = "3";
  12.             const string CommandRecovery = "4";
  13.  
  14.             Random random = new Random();
  15.  
  16.             int minValueHealthBoss = 500;
  17.             int minValueAttackBoss = 10;
  18.             int maxValueHealthBoss = 1000;
  19.             int maxValueAttackBoss = 50;
  20.  
  21.             int minValueHealthPlayer = 10;
  22.             int minValueSimpleAttackPlayer = 1;
  23.             int minValueFireBallAttack = 10;
  24.             int minValueBlastAttack = 50;
  25.             int minValueMannaPlayer = 50;
  26.             int maxValueHealthPlayer = 100;
  27.             int maxValueSimpleAttackPlayer = 100;
  28.             int maxValueFireBallAttack = 150;
  29.             int maxValueBlastAttack = 250;
  30.             int maxValueMannaPlayer = 100;
  31.  
  32.             int costFireBallAttack = 10;
  33.             int costBlastAttack = 25;
  34.             int countUseRecovery = 5;
  35.  
  36.             float bossHealth = random.Next(minValueHealthBoss, maxValueHealthBoss + 1);
  37.             float bossAttack;
  38.  
  39.             float playerHealthStandartValue = random.Next(minValueHealthPlayer, maxValueHealthPlayer + 1);
  40.             float playerSimpleAttack;
  41.             float playerFireBallAttack;
  42.             float playerBlastAttack;
  43.             float playerMannaStandartValue = random.Next(minValueMannaPlayer, maxValueMannaPlayer + 1);
  44.             float playerHealth = playerHealthStandartValue;
  45.             float playerManna = playerMannaStandartValue;
  46.  
  47.             bool isUseRecovery = false;
  48.             bool isUseFireBall = false;
  49.  
  50.             string userInput;
  51.  
  52.             while (playerHealth > 0 && bossHealth > 0)
  53.             {
  54.                 bossAttack = random.Next(minValueAttackBoss, maxValueAttackBoss + 1);
  55.                 playerSimpleAttack = random.Next(minValueSimpleAttackPlayer, maxValueSimpleAttackPlayer + 1);
  56.                 playerFireBallAttack = random.Next(minValueFireBallAttack, maxValueFireBallAttack + 1);
  57.                 playerBlastAttack = random.Next(minValueBlastAttack, maxValueBlastAttack + 1);
  58.  
  59.                 Console.WriteLine(
  60.                     $"\n" + $"Битва с боссом! \n" +
  61.                     $"----------------------------\n" +
  62.                     $"HP босса: {bossHealth}\n" +
  63.                     $"Атака босса: {bossAttack}\n" +
  64.                     $"----------------------------\n" +
  65.                     $"HP вашего персонажа: {playerHealth}\n" +
  66.                     $"Атака вашего персонажа: {playerSimpleAttack}\n" +
  67.                     $"Количество манны вашего персонажа: {playerManna}\n" +
  68.                     $"----------------------------\n");
  69.  
  70.                 Console.Write(
  71.                     $"Меню битвы: \n" +
  72.                     $"{CommandSimpleAttack} - простая атака \n" +
  73.                     $"{CommandFireBallAttack} - запустить файерболл в боса, тратит {costFireBallAttack} манны и наносит {playerFireBallAttack} урона\n" +
  74.                     $"{CommandBlastAttack} - взорвать босса, чтобы реализовать нужно сначало запустить фаербол, тратит {costBlastAttack} манны и наносит {playerBlastAttack}\n" +
  75.                     $"{CommandRecovery} - восстановление, восстанавливает здоровье и манну. Количество использований {countUseRecovery}.\n" +
  76.                     $"\n" +
  77.                     $"Введите команду для боя: ");
  78.  
  79.                 userInput = Console.ReadLine();
  80.  
  81.                 Console.Clear();
  82.  
  83.                 switch (userInput)
  84.                 {
  85.                     case CommandSimpleAttack:
  86.                         Console.WriteLine("Вы атаковал боса простой атакой кулаком.\n");
  87.                         bossHealth -= playerSimpleAttack;
  88.                         break;
  89.  
  90.                     case CommandFireBallAttack:
  91.                         if (playerManna >= costFireBallAttack)
  92.                         {
  93.                             Console.WriteLine("Вы запустили фаербол в босса.\n");
  94.                             bossHealth -= playerFireBallAttack;
  95.                             playerManna -= costFireBallAttack;
  96.                             isUseFireBall = true;
  97.                         }
  98.                         else
  99.                         {
  100.                             Console.Clear();
  101.                             Console.WriteLine("Недостаточно маны для огненного шара!");
  102.                         }
  103.                         break;
  104.  
  105.                     case CommandBlastAttack:
  106.                         if (isUseFireBall == true && playerManna >= costBlastAttack)
  107.                         {
  108.                             Console.WriteLine("Вы успешно взрываете босса.");
  109.                             bossHealth -= playerBlastAttack;
  110.                             playerManna -= costBlastAttack;
  111.                             isUseFireBall = false;
  112.                         }
  113.                         else if (isUseFireBall == false)
  114.                         {
  115.                             Console.WriteLine("Сначала используйте огненный шар, чтобы активировать взрыв.");
  116.                         }
  117.                         else
  118.                         {
  119.                             Console.WriteLine("Недостаточно маны для взрыва!");
  120.                         }
  121.                         break;
  122.  
  123.                     case CommandRecovery:
  124.                         if (countUseRecovery > 0)
  125.                         {
  126.                             Console.WriteLine("Вы отошли в укрытие для восстановления.");
  127.                             playerHealth = playerHealthStandartValue;
  128.                             playerManna = playerMannaStandartValue;
  129.                             countUseRecovery--;
  130.                             isUseRecovery = true;
  131.                         }
  132.                         else
  133.                         {
  134.                             Console.WriteLine("Использования восстановления закончились!");
  135.                         }
  136.                         break;
  137.  
  138.                     default:
  139.                         Console.WriteLine("Вы не смогли в пылу боя прописать правильно команду и пропускаете удар от босса.");
  140.                         break;
  141.                 }
  142.  
  143.                 if (isUseRecovery == false)
  144.                 {
  145.                     playerHealth -= bossAttack;
  146.                 }
  147.                 else
  148.                 {
  149.                     isUseRecovery = false;
  150.                 }
  151.             }
  152.  
  153.             if (bossHealth <= 0 && playerHealth <= 0)
  154.             {
  155.                 Console.WriteLine("Ничья! Оба погибли.");
  156.             }
  157.             else if (bossHealth <= 0)
  158.             {
  159.                 Console.WriteLine("Поздравляем! Вы победили босса!");
  160.             }
  161.             else if (playerHealth <= 0)
  162.             {
  163.                 Console.WriteLine("Босс одержал победу. Вы проиграли.");
  164.             }
  165.  
  166.             Console.WriteLine("Хорошая была битва.");
  167.         }
  168.     }
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement