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);
     }
 }
示例#3
0
        public override void Utkozes(JatekElem jatekElem)
        {
            base.Utkozes(jatekElem);
            Jatekos jatekos = jatekElem as Jatekos;

            if (this.Aktiv && jatekos != null)
            {
                jatekos.Serul(10);
            }
        }
示例#4
0
 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);
     }
 }
示例#5
0
 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);
     }
 }
示例#6
0
        public override void Utkozes(JatekElem jatekElem)
        {
            Jatekos jatekos = jatekElem as Jatekos;

            if (jatekos != null)
            {
                KincsFelvetel?.Invoke(this, jatekos);
                jatekos.PontotSzerez(50);
                ter.Torles(this);
            }
        }
示例#7
0
 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;
         }
     }
 }
示例#9
0
        public override void  Utkozes(JatekElem Parameter)
        {
            // valami
            //if (Parameter as Jatekos)
            //{
            //    // ha igen
            //   Parameter.PontotSzerez(50);

            //}
            //else
            //{
            //    Parameter.Torol();
            //}
        }
示例#10
0
 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();
 }
示例#11
0
 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);
            }
示例#13
0
 public MozgasHelyHianyMiattNemSikerultKivetel(JatekElem[] elemek, JatekElem jatekElem, int x, int y)
     : base(jatekElem, x, y)
 {
     this.elemek = elemek;
 }
示例#14
0
 public MozgasNemSikerult(JatekElem jatekElem, int x, int y)
 {
     this.jatekElem = jatekElem;
     this.x = x;
     this.y = y;
 }
示例#15
0
 public MozgasHelyHianyMiattNemSikerultKivetel(JatekElem[] elemek, JatekElem jatekElem, int x, int y)
     : base(jatekElem, x, y)
 {
     this.elemek = elemek;
 }
示例#16
0
 public MozgasHalalMiattNemSikerult(JatekElem jatekElem, int x, int y)
     : base(jatekElem, x, y)
 {
 }
示例#17
0
 public MozgasNemSikerult(JatekElem jatekElem, int x, int y)
 {
     this.jatekElem = jatekElem;
     this.x         = x;
     this.y         = y;
 }
 public void Felvetel(JatekElem elem)
 {
     elemek[elemN++] = elem;
 }
 public MozgasHalalMiattNemSikerultKivetel(int x, int y, JatekElem jatekElem)
     : base(x, y, jatekElem)
 {
 }
示例#20
0
文件: Keret.cs 项目: afga/prog2Jatek
 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();
 }
示例#21
0
 public void Felvesz(JatekElem uj)
 {
     elemek[elemN++] = uj;
 }
示例#22
0
 public MozgasNemSikerultKivetel(int x, int y, JatekElem jatekElem)
 {
     this.x         = x;
     this.y         = y;
     this.jatekElem = jatekElem;
 }
示例#23
0
 public MozgasHalalMiattNemSikerult(JatekElem jatekElem, int x, int y)
     : base(jatekElem, x, y)
 {
 }
示例#24
0
 public void Torol(JatekElem torolni)
 {
     for (int i = 0; i < elemN; i++) {
         if (torolni == elemek[i]) {
             elemek[i] = elemek[--elemN];
             elemek[elemN] = null;
         }
     }
 }
示例#25
0
 public MozgasHelyHianyMiattNemSikerult(int x, int y, JatekElem jatekElem, JatekElem[] elemek)
     : base(x, y, jatekElem)
 {
     this.elemek = elemek;
 }
示例#26
0
 public override void Utkozes(JatekElem elem)
 {
 }
示例#27
0
 public override void Utkozes(JatekElem Parameter)
 {
     if (Parameter is Jatekos)
     {
     }
 }
示例#28
0
 public override void Utkozes(JatekElem elem)
 {
 }
示例#29
0
 public abstract void Utkozes(JatekElem jatekElem);
示例#30
0
        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();
            }
        }