using System.Collections.Generic;
using System.Threading.Tasks;
public static void Main()
Kostka kostka = new Kostka(10);
Bojovnik zalgoren = new Bojovnik("Zalgoren", 100, 20, 10, kostka);
Bojovnik gandalf = new Mag("Gandalf", 60, 15, 12, kostka, 30, 45);
Arena arena = new Arena(zalgoren, gandalf, kostka);
private Bojovnik bojovnik1;
private Bojovnik bojovnik2;
public Arena(Bojovnik bojovnik1, Bojovnik bojovnik2, Kostka kostka)
this.bojovnik1 = bojovnik1;
this.bojovnik2 = bojovnik2;
Console.WriteLine("-------------- Aréna -------------- \n");
Console.WriteLine("Bojovnici: \n");
VypisBojovnika(bojovnik1);
VypisBojovnika(bojovnik2);
private void VypisZpravu(string zprava)
Console.WriteLine(zprava);
private void VypisBojovnika(Bojovnik b)
Console.Write("Zivot: ");
Console.WriteLine(b.GrafickyZivot());
Console.WriteLine(((Mag)b).GrafickaMana());
Console.WriteLine("Vítejte v aréně!");
Console.WriteLine("Dnes se utkají {0} s {1}! \n", bojovnik1, bojovnik2);
bool zacinaBojovnik2 = (kostka.hod() <= kostka.GetSteny() / 2);
Console.WriteLine("Zacinat bude bojovnik {0}! \nZápas může začít...", b1);
while (b1.Nazivu() && b2.Nazivu())
VypisZpravu(b1.VratPosledniZpravu());
VypisZpravu(b2.VratPosledniZpravu());
VypisZpravu(b2.VratPosledniZpravu());
VypisZpravu(b1.VratPosledniZpravu());
public Bojovnik(string jmeno, int zivot, int utok, int obrana, Kostka kostka)
public override string ToString()
protected void NastavZpravu(string zprava)
public string VratPosledniZpravu()
protected string GrafickyUkazatel(int aktualni, int maximalni)
double pocet = Math.Round(((double)aktualni / maximalni) * celkem);
if ((pocet == 0) && (Nazivu()))
for (int i = 0; i < pocet; i++)
s = s.PadRight(celkem + 1);
public string GrafickyZivot()
return GrafickyUkazatel(zivot, maxZivot);
public void BranSe(int uder)
int zraneni = uder - (obrana + kostka.hod());
zprava = String.Format("{0} utrpěl poškození {1} hp", jmeno, zraneni);
zprava = String.Format("{0} odrazil útok", jmeno);
public virtual void Utoc(Bojovnik souper)
int uder = utok + kostka.hod();
NastavZpravu(String.Format("{0} útočí s úderem za {1} hp", jmeno, uder));
public Mag(string jmeno, int zivot, int utok, int obrana, Kostka kostka, int mana, int magickyUtok): base(jmeno, zivot, utok, obrana, kostka)
this.magickyUtok = magickyUtok;
public override void Utoc(Bojovnik souper)
int uder = magickyUtok + kostka.hod();
NastavZpravu(String.Format("{0} pouzil magii za {1} hp", jmeno, uder));
public string GrafickaMana()
return GrafickyUkazatel(mana, maxMana);
public Kostka(int pocetSten)
this.pocetSten = pocetSten;
public override string ToString()
return String.Format("Kostka s {0} stenami", pocetSten);
return random.Next(1, pocetSten + 1);