/// <summary> /// Elenőrzi hogy a két tárgy közül az egyikkel el lehet-e törni a másikat. Ha mind a kettő elérhető (Leltárban van és látható) akkor törhető a tárgy. /// </summary> /// <param name="mit"></param> /// <param name="mivel"></param> public void Tores(string mit, string mivel) { switch (mit) { case "ablak": case "feszítővas": if (mivel == "") { switch (mit) { case "feszítővas": Console.WriteLine("Mit törjek össze vele?"); break; case "ablak": Console.WriteLine("A kezeddel nem tudod összetörni, mert megvágnád magad."); break; default: break; } } else if (Ellenorzo.KapcsolatbanVannak(mit, mivel)) { if (Ellenorzo.LeltarambanVan(mivel) || Ellenorzo.LeltarambanVan(mit)) { Console.WriteLine("A feszítővassal betöröd az ablakot"); haz.First(x => x.id == jatekos.Helye).eszak = true; } else { Console.WriteLine("Ehhez egy olyan tárgy kell ami nincs a leltáramban."); } } else { Console.WriteLine("Ez a két tárgy nem tudja betörni egymást."); } break; default: Console.WriteLine("Ezt nem lehet összetörni."); break; } }
/// <summary> /// Paraméter nélkül megadja a szoba leírását. /// Ha megadunk egy tárgyat mögötte, akkor annak a leírását adja vissza ha látjuk és a szobában van. /// </summary> /// <param name="nev"></param> /// <returns></returns> public string Nezd(string nev) { if (nev != "") { if (Ellenorzo.Lathato(nev)) { if (Ellenorzo.Elerheto(nev)) { if (nev == "kád") { targyak.First(x => x.neve == "feszítővas").lathato = true; } return(targyak.First(x => x.neve == nev).leiras); } return($"A(z) {nev} nem ebben a szobában van."); } return($"Nem látok {targyak.First(x => x.neve == nev).neve}-(a)t"); } else { return(haz.First(x => x.id == jatekos.Helye).leiras); } }
static void Main() { //A játék addig tart amíg a nyert nem lesz true. addig folyamatosan kér új parancsokat. TaroloEljarasok.Inicializalas(); Console.WriteLine("Adjon meg egy parancsot"); do { string beadott = Console.ReadLine(); string[] ertelmezett = ertelmezes(beadott); switch (ertelmezett[0]) { case "leltár": parancsok.Leltaram(); break; case "nézd": Console.WriteLine(parancsok.Nezd(ertelmezett[1])); break; case "nyisd": if (ertelmezett[1] == "") { Console.WriteLine("Mit nyissak ki?"); } else if (Ellenorzo.Elerheto(ertelmezett[1])) { parancsok.Nyisd(ertelmezett[1], ertelmezett[2]); } else { Console.WriteLine($"A(z) {ertelmezett[1]} nincs itt."); } break; case "tedd": case "vedd": if (Parancsok.jatekos.Leltar.Count == 0 && ertelmezett[3] == "le") { Console.WriteLine("Nincs a leltáramban semmi."); } else if (Ellenorzo.Letezik(ertelmezett)) { if (Ellenorzo.Lathato(ertelmezett[1])) { parancsok.TargyMozgatas(ertelmezett[1], ertelmezett[3]); } else { Console.WriteLine($"Nem látom a(z) {ertelmezett[1]}-t"); } } else { Console.WriteLine($"Nincs ilyen tárgy."); } break; case "húzd": if (Ellenorzo.Elerheto(ertelmezett[1])) { if (Ellenorzo.Lathato(ertelmezett[1])) { parancsok.Huzas(ertelmezett[1]); } else { Console.WriteLine($"A(z) {ertelmezett[1]} nem látható."); } } else { Console.WriteLine("Ez a tárgy nem ebben a szobában van."); } break; case "törd": if (Ellenorzo.Elerheto(ertelmezett[1])) { if (Ellenorzo.Lathato(ertelmezett[1]) || Ellenorzo.Lathato(ertelmezett[2])) { parancsok.Tores(ertelmezett[1], ertelmezett[2]); } else { Console.WriteLine($"A(z) {ertelmezett[1]} nem látható"); } } else { Console.WriteLine("Ezek a tárgyak nincsenek ebben a szobában."); } break; case "menj": parancsok.Menni(ertelmezett[4]); break; case "mentés": case "ments": TaroloEljarasok.Mentés(); break; case "betöltés": if (File.Exists("mentes.sav")) { Console.WriteLine("Biztosan betöltöd egy korábbi mentésed? Jelenlegi állásod elveszhet. (y/n)"); string valasz = Console.ReadLine().ToLower(); if (valasz == "y" || valasz == "yes" || valasz == "igen") { TaroloEljarasok.Betoltes(); } else { break; } } else { Console.WriteLine("Nem található mentés."); } break; default: Console.WriteLine("Ilyen parancsot nem ismerek."); break; } } while (!nyert); Console.ReadKey(); }
/// <summary> /// Kinyitja a paraméterben megadott tárgyat. /// Ha két tárgy kell valaminek a kinyitásához akkor ellenőrzi mind a kettő meglétét /// </summary> /// <param name="mit"></param> /// <param name="mivel"></param> public void Nyisd(string mit, string mivel) { switch (mit) { case "szekrény": Console.WriteLine("Kinyitottad a szekrényt. Egy dobozt látsz."); targyak.First(x => x.neve == "doboz").lathato = true; break; case "doboz": if (jatekos.Leltar.Count > 0) { if (Ellenorzo.LeltarambanVan(mit)) { Console.WriteLine("kinyitottad a dobozt. Egy kulcsot találsz benne"); targyak.First(x => x.neve == "kulcs").lathato = true; } else { Console.WriteLine("Könnyebb lenne ha felvenném és úgy nyitnám ki."); } } else { Console.WriteLine("Könnyebb lenne ha felvenném és úgy nyitnám ki."); } break; case "kulcs": case "ajtó": if (mivel == "") { switch (mit) { case "kulcs": Console.WriteLine("Mivel használjam a kulcsot?"); break; case "ajtó": Console.WriteLine("Az ajtó kulcsra van zárva"); break; default: break; } } else if (Ellenorzo.KapcsolatbanVannak(mit, mivel)) { if (Ellenorzo.LeltarambanVan(mivel) || Ellenorzo.LeltarambanVan(mit)) { Console.WriteLine("Kinyitottad az ajtót"); haz.First(x => x.id == jatekos.Helye).nyugat = true; } else { Console.WriteLine("Ehhez egy olyan tárgy kell ami nincs a leltáramban."); } } else { Console.WriteLine($"Ez a két tárgy {mit} és {mivel} nem nyitják egymást."); } break; case "ablak": Console.WriteLine("Az ablak zárva van"); break; default: Console.WriteLine($"Az {mit} nem nyitható"); break; } }
/// <summary> /// A játékos helyéhez képest eldönti, hogy az elmozdulás lehetséges vagy változtat-e bármin. Ha igen végrehajtja a változtatásokat. /// </summary> /// <param name="irany"></param> public void Menni(string irany) { switch (irany) { case "észak": switch (jatekos.Helye) { case 0: if (haz.First(x => x.id == jatekos.Helye).eszak) { Console.WriteLine("Gratulálunk, sikerült megszöknöd."); Program.nyert = true; } else if (Ellenorzo.Lathato("ablak")) { Console.WriteLine("Északra nem mehetek, útban van az ablak"); } else { Console.WriteLine("Északra csak a szekrény van"); } break; case 1: Console.WriteLine("Északra nincs kijárat."); break; default: break; } break; case "kelet": switch (jatekos.Helye) { case 0: Console.WriteLine("Keletre nincs kijárat "); break; case 1: jatekos.Helye = (int)SzobaID.nappali; Console.WriteLine(haz.First(x => x.id == jatekos.Helye).leiras); break; default: break; } break; case "nyugat": switch (jatekos.Helye) { case 0: if (haz.First(x => x.id == jatekos.Helye).nyugat) { jatekos.Helye = (int)SzobaID.fürdőszoba; Console.WriteLine(haz.First(x => x.id == jatekos.Helye).leiras); } else { Console.WriteLine("Nem tudok arra menni, zárva van az ajtó."); } break; case 1: Console.WriteLine("Arra nincs kijárat"); break; default: break; } break; default: Console.WriteLine($"Arra nincs kijárat"); break; } }