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