public override void Utkozes(JatekElem elem) { if (elem is Jatekos) { KincsFelvetel?.Invoke(this, elem as Jatekos); ter.Torles(this); } }
public override void Utkozes(JatekElem elem) { base.Utkozes(elem); if (elem is Jatekos && this.Aktiv) { (elem as Jatekos).Serul(10); } }
public override void Utkozes(JatekElem jatekElem) { base.Utkozes(jatekElem); Jatekos jatekos = jatekElem as Jatekos; if (this.Aktiv && jatekos != null) { jatekos.Serul(10); } }
public override void Utkozes(JatekElem elem) { if (elem is Jatekos) { (elem as Jatekos).PontotSzerez(50); //Console.WriteLine("{0} pontot szerzett!",(elem as Jatekos).Nev); KincsFelvetel(this, elem as Jatekos); KincsFelvetel += Kincs_KincsFelvetel; this.ter.Torles(this); } }
public override void Utkozes(JatekElem elem) { if (elem is Jatekos) { (elem as Jatekos).PontotSzerez(50); ter.Torol(this); if (KincsFelvetel != null) KincsFelvetel(this, elem as Jatekos); if (Megszunes != null) Megszunes(this as IMemoriabanTarolhato); } }
public override void Utkozes(JatekElem jatekElem) { Jatekos jatekos = jatekElem as Jatekos; if (jatekos != null) { KincsFelvetel?.Invoke(this, jatekos); jatekos.PontotSzerez(50); ter.Torles(this); } }
public JatekElem[] MegadottHelyenLevok(int x, int y, int tavolsag) { int db = 0; JatekElem[] tmp = new JatekElem[elemN]; for (int i = 0; i < elemN; i++) if (Math.Sqrt(Math.Pow(x - elemek[i].X, 2) + Math.Pow(y - elemek[i].Y, 2)) <= tavolsag) tmp[db++] = elemek[i]; JatekElem[] vissza = new JatekElem[db]; for (int i = 0; i < db; i++) vissza[i] = tmp[i]; return vissza; }
public void Torles(JatekElem elem) { for (int i = 0; i < elemN; i++) { if (elemek[i].Equals(elem)) { //utolsó elem törölt elem helyére elemek[i] = elemek[--elemN]; //utolsó elem törlése, hogy ne legyen duplikáció elemek[elemN] = null; return; } } }
public override void Utkozes(JatekElem Parameter) { // valami //if (Parameter as Jatekos) //{ // // ha igen // Parameter.PontotSzerez(50); //} //else //{ // Parameter.Torol(); //} }
public void Elhelyezes(JatekElem[] elemek) { this.elemek = elemek; int[] E = new int[elemek.Length]; bool van = false; Backtrack(0, E, ref van); if (van) for (int i = 0; i < elemek.Length; i++) { elemek[i].X = uresPoziciok[E[i], 0]; elemek[i].Y = uresPoziciok[E[i], 1]; } else throw new BackTrackNincsMegoldasException(); }
public override void Utkozes(JatekElem elem) { if (elem is Jatekos) { (elem as Jatekos).PontotSzerez(50); ter.Torol(this); if (KincsFelvetel != null) { KincsFelvetel(this, elem as Jatekos); } if (Megszunes != null) { Megszunes(this as IMemoriabanTarolhato); } } }
public JatekElem[] MegadottHelyenLevok(int x, int y, int tavolsag) { int megfelel = 0; for (int i = 0; i < elemN; i++) { //pitagorasz tétel alapján távmérés if (((elemek[i].X - x) * (elemek[i].X - x) + (elemek[i].Y - y) * (elemek[i].Y - y)) <= tavolsag * tavolsag) { megfelel++; } } var megfelelElemek = new JatekElem[megfelel]; for (int i = 0; i < elemN; i++) { if (((elemek[i].X - x) * (elemek[i].X - x) + (elemek[i].Y - y) * (elemek[i].Y - y)) <= tavolsag * tavolsag) { megfelelElemek[--megfelel] = elemek[i]; } } return(megfelelElemek); }
public MozgasHelyHianyMiattNemSikerultKivetel(JatekElem[] elemek, JatekElem jatekElem, int x, int y) : base(jatekElem, x, y) { this.elemek = elemek; }
public MozgasNemSikerult(JatekElem jatekElem, int x, int y) { this.jatekElem = jatekElem; this.x = x; this.y = y; }
public MozgasHalalMiattNemSikerult(JatekElem jatekElem, int x, int y) : base(jatekElem, x, y) { }
public void Felvetel(JatekElem elem) { elemek[elemN++] = elem; }
public MozgasHalalMiattNemSikerultKivetel(int x, int y, JatekElem jatekElem) : base(x, y, jatekElem) { }
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(); }
public void Felvesz(JatekElem uj) { elemek[elemN++] = uj; }
public MozgasNemSikerultKivetel(int x, int y, JatekElem jatekElem) { this.x = x; this.y = y; this.jatekElem = jatekElem; }
public void Torol(JatekElem torolni) { for (int i = 0; i < elemN; i++) { if (torolni == elemek[i]) { elemek[i] = elemek[--elemN]; elemek[elemN] = null; } } }
public MozgasHelyHianyMiattNemSikerult(int x, int y, JatekElem jatekElem, JatekElem[] elemek) : base(x, y, jatekElem) { this.elemek = elemek; }
public override void Utkozes(JatekElem elem) { }
public override void Utkozes(JatekElem Parameter) { if (Parameter is Jatekos) { } }
public abstract void Utkozes(JatekElem jatekElem);
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(); } }