Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.36 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace _5._6
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Gladiators[] gladiators = { new Gladiators("First", 500, 20), new Gladiators("Second", 400, 30), new Gladiators("Third", 450, 45), new Gladiators("Fours", 400, 50), new Gladiators("Fives", 300, 70) };
  14.             ListOfGladiators listOfGladiators = new ListOfGladiators(gladiators);
  15.  
  16.             //int[] stats = new int[gladiators.Length];
  17.             int firstFighter, secondFighter, strikeOrderOne = -1, strikeOrderTwo, indicatorTrickyDamageInt = 0;
  18.             string itemMenuFight;
  19.             bool indicatorItemMenuFight = true, indicatorTrickyDamageBool = true;
  20.  
  21.             while (true)
  22.             {
  23.               Console.WriteLine("Добро опжалосвать на арену, где проводятся бои гладиаторов!\n" +
  24.                   "Чтобы провести бой между двумя гладиаторами, надо поочередно ввести порядковый номер гладиатора.");
  25.               ShowGladiators(gladiators);
  26.              
  27.               Console.WriteLine("Введите первого гладиатора:\n");
  28.               firstFighter = Convert.ToInt32(Console.ReadLine()) - 1;
  29.               Console.WriteLine("Введите второго гладиатора:\n");
  30.               secondFighter = Convert.ToInt32(Console.ReadLine()) - 1;
  31.  
  32.               if ((firstFighter >= 0 || firstFighter < 5) && (secondFighter >= 0 || secondFighter < 5) )
  33.                {
  34.                  Console.WriteLine("Поумолчанию первым начинает игрок, чей номер ввели первым.\n");
  35.  
  36.                  while(gladiators[firstFighter].Health > 0 || gladiators[secondFighter].Health > 0)
  37.                   {                  
  38.                     if(strikeOrderOne == secondFighter)
  39.                      {
  40.                       strikeOrderOne = firstFighter;
  41.                       strikeOrderTwo = secondFighter;
  42.  
  43.                       Console.WriteLine($"Сейчас атакует первый игрок - гладиатор {gladiators[firstFighter].Name}");
  44.                      }
  45.                     else
  46.                      {
  47.                       strikeOrderOne = secondFighter;
  48.                       strikeOrderTwo = firstFighter;
  49.  
  50.                       Console.WriteLine($"Сейчас атакует второй игрок - гладиатор {gladiators[secondFighter].Name}");
  51.                      }
  52.                      
  53.                       ListOfDamage();
  54.  
  55.                       Console.WriteLine("Введите вариант нанесения удара:\n");
  56.                       itemMenuFight = Console.ReadLine();
  57.  
  58.                       while(indicatorItemMenuFight)
  59.                       {
  60.                         if(indicatorTrickyDamageBool && indicatorTrickyDamageInt != strikeOrderOne)
  61.                          {
  62.                           switch (itemMenuFight)
  63.                           {
  64.                             case "1":
  65.                             indicatorItemMenuFight = false;
  66.  
  67.                             listOfGladiators.PasteTakeDamage(strikeOrderOne, strikeOrderTwo);
  68.                             break;
  69.                             case "2":
  70.                             indicatorItemMenuFight = false;
  71.  
  72.                             listOfGladiators.CurseDamage(strikeOrderOne, strikeOrderTwo);
  73.                             break;
  74.                             case "3":
  75.                             indicatorItemMenuFight = false;
  76.  
  77.                             listOfGladiators.TrickyDamage(strikeOrderOne, strikeOrderTwo);
  78.                             indicatorTrickyDamageBool = false;
  79.                             indicatorTrickyDamageInt = strikeOrderOne;
  80.                            
  81.                             break;
  82.                             default:
  83.                               Console.WriteLine("Неверный пункт меню. Повторите ввод:\n");
  84.                             break;
  85.                           }
  86.                          
  87.                          }
  88.                         else
  89.                          {
  90.                              indicatorTrickyDamageBool = true;
  91.                              indicatorTrickyDamageInt = 0;
  92.                          }  
  93.                       }
  94.                       indicatorItemMenuFight = true;
  95.  
  96.  
  97.  
  98.  
  99.                   }
  100.  
  101.                }
  102.                else
  103.                {
  104.                 Console.WriteLine("Введенный  номер одного из гладиаторов не соответсвует ни одному порядковому номеру! Повторите ввод:\n");
  105.                }
  106.              
  107.  
  108.            
  109.             }
  110.         }
  111.  
  112.         static void ListOfDamage()
  113.         {
  114.             Console.WriteLine("Список того, чем может воспользоваться гладиатор:\n" +
  115.                 "1) Простой удар: Отнимает наносит урон в соответсвии со своей характеристикой.\n" +
  116.                 "2) Урон - проклятия: Убирает сопернику 40% жизней от остатка, а атакующий гладиатор теряет 20 жизней.\n" +
  117.                 "3) Хитрый удар: Соперник теряет 60 жизней, а атакующий пропускает следущий ход.\n");
  118.         }
  119.         static void ShowGladiators(Gladiators[] gladiators)
  120.         {
  121.             for (int i =0; i < gladiators. Length; i++)
  122.              {
  123.               Console.WriteLine($"{i + 1}) Имя: {gladiators[i].Name} - Начальное количество жизней: {gladiators[i].Health}. Урон наносимый сопернику: {gladiators[i].Damage}");
  124.              }
  125.         }
  126.  
  127.         class Gladiators
  128.         {
  129.             public string Name;
  130.             public int Health;
  131.             public int Damage;
  132.  
  133.             public Gladiators(string name, int health, int damage)
  134.             {
  135.                 Name = name;
  136.                 Health = health;
  137.                 Damage = damage;
  138.             }
  139.         }
  140.  
  141.         class ListOfGladiators
  142.         {
  143.             public Gladiators[] ListGladiators;
  144.  
  145.             public ListOfGladiators(Gladiators[] listGladiators)
  146.             {
  147.                 ListGladiators = listGladiators;
  148.             }
  149.  
  150.             public void PasteTakeDamage(int numberAttackingPlayer, int numberDefendingPlayer)
  151.             {
  152.                 ListGladiators[numberDefendingPlayer].Health -= ListGladiators[numberAttackingPlayer].Damage;
  153.             }
  154.  
  155.             public void CurseDamage(int numberAttackingPlayer, int numberDefendingPlayer)
  156.             {
  157.                 ListGladiators[numberDefendingPlayer].Health -= ListGladiators[numberDefendingPlayer].Health / 100 * 40;
  158.  
  159.                 ListGladiators[numberAttackingPlayer].Health -= 20;
  160.             }
  161.  
  162.             public void TrickyDamage(int numberAttackingPlayer, int numberDefendingPlayer)
  163.             {
  164.                 ListGladiators[numberDefendingPlayer].Health -= 60;
  165.             }
  166.  
  167.         }
  168.     }
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement