Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace _5._6
- {
- class Program
- {
- static void Main(string[] args)
- {
- 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) };
- ListOfGladiators listOfGladiators = new ListOfGladiators(gladiators);
- //int[] stats = new int[gladiators.Length];
- int firstFighter, secondFighter, strikeOrderOne = -1, strikeOrderTwo, indicatorTrickyDamageInt = 0;
- string itemMenuFight;
- bool indicatorItemMenuFight = true, indicatorTrickyDamageBool = true;
- while (true)
- {
- Console.WriteLine("Добро опжалосвать на арену, где проводятся бои гладиаторов!\n" +
- "Чтобы провести бой между двумя гладиаторами, надо поочередно ввести порядковый номер гладиатора.");
- ShowGladiators(gladiators);
- Console.WriteLine("Введите первого гладиатора:\n");
- firstFighter = Convert.ToInt32(Console.ReadLine()) - 1;
- Console.WriteLine("Введите второго гладиатора:\n");
- secondFighter = Convert.ToInt32(Console.ReadLine()) - 1;
- if ((firstFighter >= 0 || firstFighter < 5) && (secondFighter >= 0 || secondFighter < 5) )
- {
- Console.WriteLine("Поумолчанию первым начинает игрок, чей номер ввели первым.\n");
- while(gladiators[firstFighter].Health > 0 || gladiators[secondFighter].Health > 0)
- {
- if(strikeOrderOne == secondFighter)
- {
- strikeOrderOne = firstFighter;
- strikeOrderTwo = secondFighter;
- Console.WriteLine($"Сейчас атакует первый игрок - гладиатор {gladiators[firstFighter].Name}");
- }
- else
- {
- strikeOrderOne = secondFighter;
- strikeOrderTwo = firstFighter;
- Console.WriteLine($"Сейчас атакует второй игрок - гладиатор {gladiators[secondFighter].Name}");
- }
- ListOfDamage();
- Console.WriteLine("Введите вариант нанесения удара:\n");
- itemMenuFight = Console.ReadLine();
- while(indicatorItemMenuFight)
- {
- if(indicatorTrickyDamageBool && indicatorTrickyDamageInt != strikeOrderOne)
- {
- switch (itemMenuFight)
- {
- case "1":
- indicatorItemMenuFight = false;
- listOfGladiators.PasteTakeDamage(strikeOrderOne, strikeOrderTwo);
- break;
- case "2":
- indicatorItemMenuFight = false;
- listOfGladiators.CurseDamage(strikeOrderOne, strikeOrderTwo);
- break;
- case "3":
- indicatorItemMenuFight = false;
- listOfGladiators.TrickyDamage(strikeOrderOne, strikeOrderTwo);
- indicatorTrickyDamageBool = false;
- indicatorTrickyDamageInt = strikeOrderOne;
- break;
- default:
- Console.WriteLine("Неверный пункт меню. Повторите ввод:\n");
- break;
- }
- }
- else
- {
- indicatorTrickyDamageBool = true;
- indicatorTrickyDamageInt = 0;
- }
- }
- indicatorItemMenuFight = true;
- }
- }
- else
- {
- Console.WriteLine("Введенный номер одного из гладиаторов не соответсвует ни одному порядковому номеру! Повторите ввод:\n");
- }
- }
- }
- static void ListOfDamage()
- {
- Console.WriteLine("Список того, чем может воспользоваться гладиатор:\n" +
- "1) Простой удар: Отнимает наносит урон в соответсвии со своей характеристикой.\n" +
- "2) Урон - проклятия: Убирает сопернику 40% жизней от остатка, а атакующий гладиатор теряет 20 жизней.\n" +
- "3) Хитрый удар: Соперник теряет 60 жизней, а атакующий пропускает следущий ход.\n");
- }
- static void ShowGladiators(Gladiators[] gladiators)
- {
- for (int i =0; i < gladiators. Length; i++)
- {
- Console.WriteLine($"{i + 1}) Имя: {gladiators[i].Name} - Начальное количество жизней: {gladiators[i].Health}. Урон наносимый сопернику: {gladiators[i].Damage}");
- }
- }
- class Gladiators
- {
- public string Name;
- public int Health;
- public int Damage;
- public Gladiators(string name, int health, int damage)
- {
- Name = name;
- Health = health;
- Damage = damage;
- }
- }
- class ListOfGladiators
- {
- public Gladiators[] ListGladiators;
- public ListOfGladiators(Gladiators[] listGladiators)
- {
- ListGladiators = listGladiators;
- }
- public void PasteTakeDamage(int numberAttackingPlayer, int numberDefendingPlayer)
- {
- ListGladiators[numberDefendingPlayer].Health -= ListGladiators[numberAttackingPlayer].Damage;
- }
- public void CurseDamage(int numberAttackingPlayer, int numberDefendingPlayer)
- {
- ListGladiators[numberDefendingPlayer].Health -= ListGladiators[numberDefendingPlayer].Health / 100 * 40;
- ListGladiators[numberAttackingPlayer].Health -= 20;
- }
- public void TrickyDamage(int numberAttackingPlayer, int numberDefendingPlayer)
- {
- ListGladiators[numberDefendingPlayer].Health -= 60;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement