C#

Нужен скрипт для решения задачи! на C#

Паладин дерётся с орками. Орки нападают на паладина по одному. Бой пошаговый:

Каждый ход у каждого противника по одному действию

Действия совершаются одновременно

Атака наносит урон здоровью врага. Броня уменьшает урон от атаки врага на значение брони. Каждый четвёртый ход паладин вместо атаки использует навык лечения, который восстанавливает ему некоторое количество здоровья.

Паладин: 1500 здоровья, 4 атаки, 2 брони, Восстанавливает 3 здоровья

Орк: 150 здоровья, 7 атаки, 0 брони
internal class Program

{

static void Main(string[] args)

{

Paladin paladin = new Paladin();

Orc orc = new Orc();

int killedByPaladin = 0;

while ( paladin.Health > 0)

{

Fight.Fighting(ref paladin, ref orc);


if ( orc.Health <= 0)

{

Console.WriteLine($"Орк побежден\n-----------------------------------------");

killedByPaladin++;

orc = new Orc();

}

}

Console.WriteLine($"Паладин убил {killedByPaladin} орков и умер как герой!");

}

}

public class Paladin

{

public Paladin() => _health = 1500;


private int _health;

private readonly int _attack = 4;

private readonly int _armor = 2;


private readonly int _healthRecovery = 3;

private int _move = 0;


public int Health

{

get => _health;

set => _health = value;

}


public int Attack { get => _attack; }

public int Armor { get => _armor; }


public int Move

{

get => _move;

set => _move = value;

}


public void Heal() => Health += _healthRecovery;

}


public class Orc

{

public Orc() => _health = 150;


private int _health;

private readonly int _attack = 7;

private readonly int _armor = 0;


public int Health

{

get => _health;

set => _health = value;

}


public int Attack { get => _attack; }

public int Armor { get => _armor; }

}


public static class Fight

{

public static void Fighting(ref Paladin paladin, ref Orc orc)

{

paladin.Move++;

if (paladin.Move % 4 == 0)

{

paladin.Heal();

paladin.Health -= orc.Attack - paladin.Armor;

paladin.Move = 0;

}

else

{

paladin.Health -= orc.Attack - paladin.Armor;

orc.Health -= paladin.Attack - orc.Armor;

}

FightingResult(paladin, orc);

}


public static void FightingResult(Paladin paladin, Orc orc)

=> Console.WriteLine($"Здоровье Паладина: { paladin.Health }\nЗдоровье Орка: { orc.Health }");

}
Kurilis Kurilis
Kurilis Kurilis
11 288
Лучший ответ