void KincsFelvetelTortent(Kincs kincs, Jatekos jatekos) { megtalaltKincsek++; jatekVege = jatekVege || megtalaltKincsek == KINCSEK_SZAMA; }
public void Futtatas() { JatekElem[] elemek = new JatekElem[1 + ELLENFELEK_SZAMA + KINCSEK_SZAMA]; Jatekos jatekos = new Jatekos("Bela", -1, -1, ter); elemek[0] = jatekos; for (int i = 1; i < ELLENFELEK_SZAMA + 1; i++) { if (R.Next(1, 101) > 50) elemek[i] = new GonoszGepiJatekos(String.Format("Gepi{0}", i), -1, -1, ter); else elemek[i] = new GepiJatekos(String.Format("Gepi{0}", i), -1, -1, ter); generator.Felvetel(elemek[i] as GepiJatekos); } for (int i = 4; i < elemek.Length; i++) { elemek[i] = new Kincs(-1, -1, ter); ter.Felvesz(elemek[i]); (elemek[i] as Kincs).KincsFelvetel += KincsFelvetelTortent; } BacktrackElhelyezo bte = new BacktrackElhelyezo(ter); bool siker = false; while (!siker) { try { bte.Elhelyezes(elemek); siker = true; } catch (BackTrackNincsMegoldasException) { siker = false; int tx = R.Next(2, PALYA_MERET_X - 2); int ty = R.Next(2, PALYA_MERET_Y - 2); while (!(ter.MegadottHelyenLevok(tx, ty)[0] is Fal)) { tx = R.Next(2, PALYA_MERET_X - 2); ty = R.Next(2, PALYA_MERET_Y - 2); } Fal tor = ter.MegadottHelyenLevok(tx, ty)[0] as Fal; } } for (int i = 0; i <= ELLENFELEK_SZAMA; i++) (elemek[i] as Jatekos).RogzitesInditas(generator); jatekos.JatekosValtozas += JatekosValtozasTortent; KonzolosMegjelenito km = new KonzolosMegjelenito(0, 0, ter); KonzolosMegjelenito plM = new KonzolosMegjelenito(25, 0, jatekos); KonzolosEredmenyAblak kea = new KonzolosEredmenyAblak(0, 12, 5); kea.JatekosFeliratkozas(jatekos); generator.Felvetel(km); generator.Felvetel(plM); do { ConsoleKeyInfo key = Console.ReadKey(true); try { if (key.Key == ConsoleKey.LeftArrow) jatekos.Megy(-1, 0); if (key.Key == ConsoleKey.RightArrow) jatekos.Megy(1, 0); if (key.Key == ConsoleKey.UpArrow) jatekos.Megy(0, -1); if (key.Key == ConsoleKey.DownArrow) jatekos.Megy(0, 1); } catch (MozgasHelyHianyMiattNemSikerultKivetel k) { Console.Beep(500 + k.Elemek.Length * 100, 10); } jatekVege = jatekVege || key.Key == ConsoleKey.Escape; } while (!jatekVege); for (int i = 1; i <= ELLENFELEK_SZAMA; i++) generator.Levetel((elemek[i] as GepiJatekos)); for (int i = 0; i <= ELLENFELEK_SZAMA; i++) (elemek[i] as Jatekos).VisszajatszasInditas(); }
private void Kincs_KincsFelvetel(Kincs felvettKincs, Jatekos felvette) { throw new NotImplementedException(); }