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;
- // A feladat maga: http://aries.ektf.hu/~hz/wiki7/mprog2gy/gyak_08
- namespace gladiator
- {
- enum Szinkod { Sárga, Piros, Fekete }
- enum Szarmazas { Római, Trak, Gall, Hispán, Pun }
- enum Fegyver { Kard, Lándzsa, Buzogány, Acélháló }
- class Gladiator
- {
- // Fields, properties
- public Szinkod szin;
- public Szarmazas szarmazas;
- public bool szabad_e;
- protected int _ev;
- public int ev
- {
- get { return _ev; }
- set
- {
- if (0 < value && value <= 10)
- {
- _ev = value;
- }
- else throw new Exception("Hibás érték! (év)");
- }
- }
- // Constructors
- public Gladiator(int p_ev, Szarmazas p_szarm)
- {
- ev = p_ev;
- szarmazas = p_szarm;
- szabad_e = false;
- if (_ev <= 2)
- {
- szin = Szinkod.Sárga;
- }
- else if (_ev <= 5)
- {
- szin = Szinkod.Piros;
- }
- else szin = Szinkod.Fekete;
- }
- // Methods
- public virtual void Oregszik()
- {
- if (ev < 10)
- {
- ev++;
- if (ev == 10) szabad_e = true;
- else Fejlodik(ev); // nem praktikus, de mindegy
- }
- }
- public void Fejlodik(int ev)
- {
- switch (ev)
- {
- case 3:
- szin = Szinkod.Piros;
- break;
- case 6:
- szin = Szinkod.Fekete;
- break;
- default:
- // ..
- break;
- }
- }
- /* public void Felszabadit()
- {
- szabad_e = true;
- }*/
- }
- class KepzettGladiator : Gladiator
- {
- // Fields, properties
- public Fegyver fegyver;
- protected string _becenev;
- public string becenev
- {
- get { return _becenev; }
- set
- {
- if (2 < value.Length && value.Length < 16)
- {
- _becenev = value;
- }
- else throw new Exception("Hibás érték! (becenév)");
- }
- }
- // Methods
- public override void Oregszik()
- {
- if (ev >= 6)
- {
- ev = ev + 2;
- }
- else if (ev < 10)
- {
- ev++;
- if (ev == 10)
- {
- szabad_e = true; // sokkkkkkal egyszerűbb...
- //Felszabadit();
- return;
- }
- else Fejlodik(ev); // nem praktikus, de mindegy
- }
- else szabad_e = true;
- }
- // Constructor
- public KepzettGladiator(int p_ev, string p_bece, Szarmazas p_szarm, Fegyver p_fegyv)
- : base(p_ev, p_szarm)
- {
- ev = p_ev;
- fegyver = p_fegyv;
- szarmazas = p_szarm;
- becenev = p_bece;
- szabad_e = false;
- if (ev <= 2)
- {
- szin = Szinkod.Sárga;
- }
- else if (ev <= 5)
- {
- szin = Szinkod.Piros;
- }
- else szin = Szinkod.Fekete;
- }
- }
- class Arena
- {
- static Random rand = new Random();
- protected static List<KepzettGladiator> lista = new List<KepzettGladiator>();
- private static void Harc()
- {
- int x1, x2;
- do
- {
- x1 = rand.Next(lista.Count);
- x2 = rand.Next(lista.Count);
- } while (x1 == x2);
- if ((int)lista[x1].szin > (int)lista[x2].szin)
- {
- lista.RemoveAt(x2);
- }
- else if ((int)lista[x1].szin < (int)lista[x2].szin)
- {
- lista.RemoveAt(x1);
- }
- else lista.RemoveAt(Szavaz(x1, x2));
- }
- private static int Szavaz(int x1, int x2)
- {
- bool x = rand.Next(2) == 1 ? true : false;
- if (x) return x1;
- else return x2;
- }
- static string msh = "qwrtzpsdfghjklxvbnm";
- static string mgh = "euioay";
- public static void Valogat()
- {
- while (lista.Count < 10)
- {
- List<char> beceList = new List<char>();
- beceList.Add(msh[rand.Next(msh.Length)]);
- int nameLength = rand.Next(5, 12);
- for (int i = 1; i < nameLength; i++)
- {
- if (i % 2 == 0)
- beceList.Add(msh[rand.Next(msh.Length)]);
- else beceList.Add(mgh[rand.Next(mgh.Length)]);
- }
- string gBecenev = string.Join("", beceList.ToArray());
- gBecenev = char.ToUpper(gBecenev[0]) + gBecenev.Substring(1);
- lista.Add(new KepzettGladiator(rand.Next(10), gBecenev, (Szarmazas)rand.Next(5), (Fegyver)rand.Next(4)));
- }
- }
- public static KepzettGladiator TornaIndul()
- {
- while (lista.Count != 1)
- {
- Harc();
- }
- lista[0].Oregszik();
- return lista[0];
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- KepzettGladiator kg = null;
- for (int i = 0; i < 3; i++)
- {
- Arena.Valogat();
- if (i == 2)
- {
- kg = Arena.TornaIndul();
- break;
- }
- Arena.TornaIndul();
- }
- Console.WriteLine("A három torna győztes gladiátora:\n-------------------------");
- Console.WriteLine("Becenév: {0}", kg.becenev);
- Console.WriteLine("Év: {0}", kg.ev);
- Console.WriteLine("Származás: {0}", kg.szarmazas);
- Console.WriteLine("Fegyver: {0}", kg.fegyver);
- Console.WriteLine("Színkód: {0}", kg.szin);
- Console.WriteLine("Szabad-e: {0}", kg.szabad_e ? "igen" : "nem");
- Console.ReadLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement