IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

sdraco

Adventura v C#

c-sharp

class Prostor
{ 
	 public string Popisek{get;set;}
	 public string Nazev { get; set; }
	 public List<Predmet> predmety = new List<Predmet>();
	 public List<Prostor> vychody = new List<Prostor>();

	 public Prostor(string nazev,string popisek) 
	 {

		 this.Nazev = nazev;
		 this.Popisek = popisek;
	 
	 }

	 public void PridejPredmet(Predmet predmet)
	 {
		 predmety.Add(predmet);
	 }

	 public Predmet VezmiPredmet(string nazev)
	 {
		 var dotaz = from p in predmety
					 where p.Nazev == nazev
					 select p;
		 Predmet predmet = dotaz.First();
		 
		 predmety.Remove(predmet);

		 return predmet;
	 }


	 public void PridejVychod(Prostor prostor)
	 {
		 vychody.Add(prostor);
	 }

	 public void OdeberVychod(Prostor prostor)
	 {
		 vychody.Remove(prostor);
	 }

	 

}

class Svet 
{
	public Prostor AktualniProstor { get; set; }
	public Prostor cinzovniDum;
	public Prostor byt;

	public Svet()
	{
		cinzovniDum = new Prostor("cinzak", "Stary cinzovni dum obrostly lisejnikem ve stinu lampy.");
		byt = new Prostor("byt", "opusteny byt v poslednim patre");

		cinzovniDum.PridejVychod(byt);
		byt.PridejVychod(cinzovniDum);

	}



}

class Predmet
{
	public string Popisek { get; set; }
	public string Nazev { get; set; }
}

class Batoh
{ 
	List<Predmet> predmety = new List<Predmet>();

	public void PridejPredmet(Predmet predmet)
	{
		predmety.Add(predmet);
	}

	public Predmet VezmiPredmet(string nazev)
	{
		var dotaz = from p in predmety
					where p.Nazev == nazev
					select p;
		Predmet predmet = dotaz.First();

		predmety.Remove(predmet);

		return predmet;
	}

}

class ZpracovacPrikazu
{ 
	public string Nazev { get; set; }
	protected Svet svet;

	public ZpracovacPrikazu(Svet svet)
	{ 
		this.svet = svet;
	}

	public virtual string Spust(string parametr)
	{ return "obecny prikaz nelze spustit"; }

}


class ZpracovacPrikazuSeber : ZpracovacPrikazu
{

	public ZpracovacPrikazuSeber(Svet svet): base(svet)
	{
		Nazev = "seber";

		}
	public override string Spust(string parametr)
	{ return "sebral jsi neco"; }
}


class ZpracovacPrikazuJdi:ZpracovacPrikazu
{
	public ZpracovacPrikazuJdi(Svet svet): base(svet)
	{
		Nazev = "jdi";

		}

	public override string Spust(string parametr)
	{
		var dotaz = from v in svet.AktualniProstor.vychody
					where v.Nazev == parametr
					select v;
		Prostor novy = dotaz.First();
		svet.AktualniProstor = novy;
		return "sel jsi do " + parametr;
	}

}

class Program
{
	static void Main(string[] args)
	{

		Svet svet = new Svet();
		svet.AktualniProstor = svet.cinzovniDum;

		List<ZpracovacPrikazu> zpracovace = new List<ZpracovacPrikazu>();

		ZpracovacPrikazuJdi zpracovacPrikazuJdi = new ZpracovacPrikazuJdi(svet);
		zpracovace.Add(zpracovacPrikazuJdi);

		string vstup = null;
		while (vstup != "konec")
		{
			Console.WriteLine(svet.AktualniProstor.Nazev);
			Console.WriteLine(svet.AktualniProstor.Popisek);

			vstup = Console.ReadLine();

			string[] casti = vstup.Split(' ');
			string nazev = casti[0];
			if (casti.Length > 1)
			{
				string parametr = casti[1];


				var dotaz = from z in zpracovace
							where z.Nazev == nazev
							select z;
				ZpracovacPrikazu zp = dotaz.First();
				Console.WriteLine(zp.Spust(parametr));
			}
			
		}
	}
}

Neformátovaný

Přidáno: 2.3.2013
Expirace: Neuvedeno

Aktivity