Advertisement
asvd32

g2

Jun 19th, 2022
19
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.31 KB | None | 0 0
  1. // ЗД12 Бой с Боссом.
  2.  
  3. using System;
  4. using System.Collections.Generic;
  5.  
  6. namespace ConsoleApp3
  7. {
  8.     internal class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             Actor player = new Actor("Игрок", 100);
  13.             Actor boss = new Actor("Противник", 100);
  14.             string[] parts = { "Голову", "Торс", "Ноги"};
  15.             Game game = new Game(parts);
  16.             int userAtattack, userBlock;
  17.  
  18.             while (player.Healf > 0 && boss.Healf > 0)
  19.             {
  20.                 game.PrintMenu(game.MakeMenu());
  21.                 Console.Write("Выберите куда бьем: ");
  22.                 userAtattack = Convert.ToInt32(Console.ReadLine());
  23.  
  24.                 game.PrintMenu(game.MakeMenu());
  25.                 Console.Write("Выберите что защищаем бьем: ");
  26.                 userBlock = Convert.ToInt32(Console.ReadLine());
  27.              
  28.  
  29.                 game.PlayFighting(player, boss, userAtattack, boss.MakeChoices(1, game.countParts));
  30.                 game.PlayFighting(boss, player, userBlock, boss.MakeChoices(1, game.countParts));
  31.  
  32.                 Console.WriteLine($"\nВаше здоровье: {player.Healf}, Здровье противника: {boss.Healf}");
  33.             }
  34.  
  35.             if (player.Healf > 0)
  36.             {
  37.                 Console.WriteLine($"{player.Name} одержал победу!");
  38.             }
  39.             else
  40.             {
  41.                 Console.WriteLine($"{boss.Name} одержал победу!");
  42.             }
  43.            
  44.         }
  45.         class Actor
  46.         {
  47.             public string Name { get; private set; }
  48.             public int Healf { get; private set; }
  49.             public int Multiply { get; set; }
  50.             public string MultiplyLable { get; set; }
  51.             private Random _random;
  52.  
  53.             public Actor(string name, int healf)
  54.             {
  55.                 Name = name;
  56.                 Healf = healf;
  57.                 Multiply = 1;
  58.                 MultiplyLable = "";
  59.                 _random = new Random();
  60.                
  61.             }
  62.             public int MakeChoices(int minRandom, int maxRandom)
  63.             {
  64.                 return _random.Next(minRandom, maxRandom);
  65.             }
  66.             public int MakeDamage(int minRandom, int maxRandom)
  67.             {
  68.                 return _random.Next(minRandom, maxRandom);
  69.             }
  70.             public int TakeDamage(int damage)
  71.             {
  72.                 this.Healf -= damage * this.Multiply;
  73.                 return this.Healf;
  74.             }
  75.         }
  76.         class Game
  77.         {
  78.             private List<string> _bodyParts = new List<string>();
  79.             public int countParts { get; private set; }
  80.  
  81.             public Game(string[] bodyParts)
  82.             {
  83.                 _bodyParts.AddRange(bodyParts);
  84.                 countParts = _bodyParts.Count;
  85.             }
  86.             public string MakeMenu()
  87.             {
  88.                 string menu = "";
  89.                 int index = 1;
  90.                 foreach (var element in _bodyParts)
  91.                 {
  92.                     menu  += $"{index} - {element}\n";
  93.                     index++;
  94.                 }
  95.                 return menu;
  96.             }
  97.             public void PrintMenu(string menu)
  98.             {
  99.                 Console.WriteLine($"{menu}");
  100.             }
  101.             public void PlayFighting(Actor attackPlayer, Actor blockPlayer, int attack, int block)
  102.             {
  103.                 if (attack == block)
  104.                 {
  105.                     Console.WriteLine($"{blockPlayer.Name} заблокировал удар!");
  106.                     blockPlayer.Multiply = 1;
  107.                     blockPlayer.MultiplyLable = "";
  108.                 }
  109.                 else
  110.                 {
  111.                     int damage = attackPlayer.MakeDamage(5, 20);
  112.  
  113.                     blockPlayer.TakeDamage(damage);
  114.                     Console.WriteLine($"{blockPlayer.MultiplyLable}{attackPlayer.Name} наносит {blockPlayer.Name} {damage * blockPlayer.Multiply} урона в {_bodyParts[attack - 1]}");
  115.                     blockPlayer.Multiply++;
  116.                     blockPlayer.MultiplyLable = $"Cерия ударов! X{blockPlayer.Multiply} - ";
  117.                 }
  118.             }
  119.         }
  120.     }
  121. }  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement