Advertisement
Montagne94

18. Бой с боссом

Jan 7th, 2025 (edited)
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.26 KB | Source Code | 0 0
  1. using System;
  2.  
  3. namespace HomeWork
  4. {
  5.     public class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             const string CommandAttack = "1";
  10.             const string CommandFireball = "2";
  11.             const string CommandExplosion = "3";
  12.             const string CommandRecovery = "4";
  13.  
  14.             Random random = new Random();
  15.  
  16.             string playerInput;
  17.             int playerMaxHealth = 100;
  18.             int playerHealth = playerMaxHealth;
  19.             int playerMaxMana = 200;
  20.             int playerMana = playerMaxMana;
  21.             int playerMinAttack = 1;
  22.             int playerMaxAttack = 8;
  23.             int playerCurrentAttack;
  24.             int fireBallAttack = 25;
  25.             int fireBallManaCost = 50;
  26.             int explosionAttack = 45;
  27.             int healthRecovery = 20;
  28.             int manaRecovery = 40;
  29.             int recoveryUsesNumber = 3;
  30.             bool isFireBallUsed = false;
  31.  
  32.             int bossHealth = 200;
  33.             int bossAttack = 10;
  34.  
  35.             while (playerHealth > 0 && bossHealth > 0)
  36.             {
  37.                 Console.WriteLine($"У игрока {playerHealth} здоровья и {playerMana} маны");
  38.                 Console.WriteLine($"У босса {bossHealth} здоровья");
  39.                 Console.WriteLine("Для продолжения нажмите любую клавишу...");
  40.  
  41.                 Console.ReadKey();
  42.                 Console.Clear();
  43.  
  44.                 Console.WriteLine("Выберите действие:");
  45.                 Console.WriteLine($"{CommandAttack} - Обычная атака");
  46.                 Console.WriteLine($"{CommandFireball} - Огненный шар");
  47.                 Console.WriteLine($"{CommandExplosion} - Взрыв");
  48.                 Console.WriteLine($"{CommandRecovery} - Восстановить хп и ману");
  49.  
  50.                 playerInput = Console.ReadLine();
  51.                 Console.Clear();
  52.  
  53.                 switch (playerInput)
  54.                 {
  55.                     case CommandAttack:
  56.                         playerCurrentAttack = random.Next(playerMinAttack, playerMaxAttack + 1);
  57.                         bossHealth -= playerCurrentAttack;
  58.                         Console.WriteLine($"Обычная атака наносит {playerCurrentAttack} урона");
  59.                         break;
  60.  
  61.                     case CommandFireball:
  62.                         if (playerMana >= fireBallManaCost)
  63.                         {
  64.                             bossHealth -= fireBallAttack;
  65.                             playerMana -= fireBallManaCost;
  66.                             isFireBallUsed = true;
  67.                             Console.WriteLine($"Огненный шар наносит {fireBallAttack} урона");
  68.                         }
  69.                         else
  70.                         {
  71.                             Console.WriteLine("Не хватает маны. Пропуск хода");
  72.                         }
  73.                         break;
  74.  
  75.                     case CommandExplosion:
  76.                         if (isFireBallUsed)
  77.                         {
  78.                             bossHealth -= explosionAttack;
  79.                             isFireBallUsed = false;
  80.                             Console.WriteLine($"Взрыв наносит {explosionAttack} урона");
  81.                         }
  82.                         else
  83.                         {
  84.                             Console.WriteLine("Cперва нужно использовать огненный шар. Пропуск хода");
  85.                         }
  86.                         break;
  87.  
  88.                     case CommandRecovery:
  89.                         if (recoveryUsesNumber > 0)
  90.                         {
  91.                             playerHealth += healthRecovery;
  92.  
  93.                             if (playerHealth > playerMaxHealth)
  94.                                 playerHealth = playerMaxHealth;
  95.  
  96.                             playerMana += manaRecovery;
  97.  
  98.                             if (playerMana > playerMaxMana)
  99.                                 playerMana = playerMaxMana;
  100.  
  101.                             recoveryUsesNumber--;
  102.  
  103.                             Console.WriteLine($"Вы восстановили хр и ману. Осталось {recoveryUsesNumber} зарядов заклинания");
  104.                         }
  105.                         else
  106.                         {
  107.                             Console.WriteLine("Закончились заряды заклинания. Пропуск хода");
  108.                         }
  109.                         break;
  110.  
  111.                     default:
  112.                         Console.WriteLine("Такой команды нет. Пропуск хода");
  113.                         break;
  114.                 }
  115.  
  116.                 playerHealth -= bossAttack;
  117.                 Console.WriteLine($"Босс наносит {bossAttack} урона");
  118.             }
  119.  
  120.             if (playerHealth <= 0 && bossHealth <= 0)
  121.                 Console.WriteLine("Ничья");
  122.             else if (playerHealth <= 0)
  123.                 Console.WriteLine("Вы проиграли");
  124.             else if (bossHealth <= 0)
  125.                 Console.WriteLine("Вы победили босса");
  126.         }
  127.     }
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement