示例#1
0
文件: Program.cs 项目: szgyf-hu/bman
        static bool bombaMozgat(Bomba b, Jatekos_Uzi_Tipusok irany)
        {
            uint uj_x = b.x;
            uint uj_y = b.y;

            switch (irany)
            {
            case Jatekos_Uzi_Tipusok.Lep_Jobbra: uj_x++; break;

            case Jatekos_Uzi_Tipusok.Lep_Le: uj_y++; break;

            case Jatekos_Uzi_Tipusok.Lep_Balra: uj_x--; break;

            case Jatekos_Uzi_Tipusok.Lep_Fel: uj_y--; break;
            }

            if (
                uj_y < 0
                ||
                uj_x < 0
                ||
                uj_y >= palya.Magassag
                ||
                uj_x >= palya.Szelesseg
                )
            {
                return(false);
            }

            switch (palya.Cellak[uj_x, uj_y].Tipus)
            {
            case CellaTipus.Lang:
                palya.cellaTorol(b.x, b.y);
                b.x = uj_x;
                b.y = uj_y;
                palya.bombaTelepit(b);
                bomba_robban(b);
                return(true);

            case CellaTipus.Ures:
                palya.cellaTorol(b.x, b.y);
                b.x = uj_x;
                b.y = uj_y;
                palya.bombaTelepit(b);
                return(true);

            default:
                return(false);
            }
        }
示例#2
0
文件: Program.cs 项目: szgyf-hu/bman
        static void bomba_robban(Bomba b)
        {
            Bombak.Remove(b.ID);

            Jatekos j;

            if (Jatekosok.TryGetValue(b.Jatekos_ID, out j))
            {
                if (j.Actbombaszam <= 0)
                {
                    j.Actbombaszam = 0;
                }
                else
                {
                    j.Actbombaszam--;
                }
            }

            palya.cellaTorol(b.x, b.y);

            lang_telepit(b.x, b.y, b);

            uint x = b.x;
            uint y = b.y;

            bool felmehete   = true;
            bool jobbramehet = true;
            bool lemehet     = true;
            bool balramehet  = true;

            for (uint i = 1; i <= b.Rendzs; i++)
            {
                if (felmehete)
                {
                    felmehete = lang_telepit(b.x, b.y - i, b);
                }
                if (jobbramehet)
                {
                    jobbramehet = lang_telepit(b.x + i, b.y, b);
                }
                if (lemehet)
                {
                    lemehet = lang_telepit(b.x, b.y + i, b);
                }
                if (balramehet)
                {
                    balramehet = lang_telepit(b.x - i, b.y, b);
                }
            }
        }
示例#3
0
        static void bomba_telepites(uint jatekos_ID, uint bomba_x, uint bomba_y)
        {
            Jatekos j;

            if (!Jatekosok.TryGetValue(jatekos_ID, out j))
            {
                return;
            }

            if (j.Actbombaszam >= j.Maxbombaszam)
            {
                return;
            }

            if (bomba_x >= palya_szelesseg || bomba_y >= palya_magassag)
            {
                return;
            }

            if (Palya[bomba_x, bomba_y].Tipus != CellaTipus.Ures)
            {
                return;
            }

            Bomba b = new Bomba
            {
                ID           = Bomba_ID_Szamlalo++,
                Szin         = j.Szin,
                Rendzs       = j.Rendzs,
                Mikor_Robban = DateTime.Now.AddMilliseconds(3000),
                Jatekos_ID   = j.ID,
                x            = bomba_x,
                y            = bomba_y
            };

            Bombak.Add(b.ID, b);

            Palya[bomba_x, bomba_y].Tipus    = CellaTipus.Bomba;
            Palya[bomba_x, bomba_y].Bomba_ID = b.ID;

            j.Actbombaszam++;
        }
示例#4
0
文件: Program.cs 项目: szgyf-hu/bman
        static void bomba_telepites(Jatekos jatekos)
        {
            if (jatekos.Actbombaszam >= jatekos.Maxbombaszam)
            {
                return;
            }

            if (!palya.uresE(jatekos.x, jatekos.y))
            {
                return;
            }

            Bomba b = new Bomba(jatekos, jatekos.x, jatekos.y);

            Bombak.Add(b.ID, b);

            palya.bombaTelepit(b);

            jatekos.Actbombaszam++;
        }
示例#5
0
文件: Palya.cs 项目: szgyf-hu/bman
 public void bombaTelepit(Bomba b)
 {
     Cellak[b.x, b.y].Tipus    = CellaTipus.Bomba;
     Cellak[b.x, b.y].Bomba_ID = b.ID;
 }
示例#6
0
        static bool lang_telepit(uint lang_x, uint lang_y, Bomba b)
        {
            if (lang_x >= palya_szelesseg || lang_y >= palya_magassag)
            {
                return(false);
            }

            foreach (Jatekos j in Jatekosok.Values)
            {
                if (j.x == lang_x && j.y == lang_y)
                {
                    j.Ele = false;
                }
            }
/*TOOD:Meghal üzenet*/

            switch (Palya[lang_x, lang_y].Tipus)
            {
            case CellaTipus.Ures:
            {
                Lang l = new Lang
                {
                    ID         = Lang_ID_Szamlalo++,
                    Szin       = b.Szin,
                    Meddig     = DateTime.Now.AddMilliseconds(1000),
                    Jatekos_ID = b.Jatekos_ID,
                    x          = lang_x,
                    y          = lang_y
                };

                Langok.Add(l.ID, l);

                Palya[lang_x, lang_y].Tipus   = CellaTipus.Lang;
                Palya[lang_x, lang_y].Lang_ID = l.ID;
                return(true);
            }

            case CellaTipus.Fal:
            {
                return(false);
            }

            case CellaTipus.Lang:
            {
                Langok.Remove(Palya[lang_x, lang_y].Lang_ID);

                Lang l = new Lang
                {
                    ID         = Lang_ID_Szamlalo++,
                    Szin       = b.Szin,
                    Meddig     = DateTime.Now.AddMilliseconds(1000),
                    Jatekos_ID = b.Jatekos_ID,
                    x          = lang_x,
                    y          = lang_y
                };

                Langok.Add(l.ID, l);

                Palya[lang_x, lang_y].Lang_ID = l.ID;
                return(true);
            }

            case CellaTipus.Bomba:
            {
                bomba_robban(Palya[lang_x, lang_y].Bomba_ID);
                return(false);
            }

            case CellaTipus.Robbanthato_Fal:
            {
                Palya[lang_x, lang_y].Tipus = CellaTipus.Ures;
                kartya_telepit(lang_x, lang_y, false);
                return(false);
            }

            default:
            {
                Palya[lang_x, lang_y].Tipus = CellaTipus.Ures;
                return(false);
            }
            }
        }
示例#7
0
文件: Program.cs 项目: szgyf-hu/bman
        static bool lang_telepit(uint lang_x, uint lang_y, Bomba b)
        {
            if (lang_x >= palya.Szelesseg || lang_y >= palya.Magassag)
            {
                return(false);
            }

            foreach (Jatekos j in Jatekosok.Values)
            {
                if (j.x == lang_x && j.y == lang_y)
                {
                    jatekosMeghal(j, b.Jatekos_ID);
                }
            }

            switch (palya.Cellak[lang_x, lang_y].Tipus)
            {
            case CellaTipus.Ures:
            {
                Lang l = new Lang(b.Jatekos_ID, lang_x, lang_y);

                Langok.Add(l.ID, l);

                palya.langTelepit(l);

                return(true);
            }

            case CellaTipus.Fal:
            {
                return(false);
            }

            case CellaTipus.Lang:
            {
                Langok.Remove(palya.Cellak[lang_x, lang_y].Lang_ID);

                Lang l = new Lang(b.Jatekos_ID, lang_x, lang_y);

                Langok.Add(l.ID, l);

                palya.langTelepit(l);

                return(true);
            }

            case CellaTipus.Bomba:
            {
                Bomba tmpb;
                if (!Bombak.TryGetValue(palya.Cellak[lang_x, lang_y].Bomba_ID, out tmpb))
                {
                    return(false);
                }

                bomba_robban(tmpb);
                return(false);
            }

            case CellaTipus.Robbanthato_Fal:
            {
                palya.cellaTorol(lang_x, lang_y);
                kartya_telepit(lang_x, lang_y, false);
                return(false);
            }

            default:
            {
                palya.cellaTorol(lang_x, lang_y);
                return(false);
            }
            }
        }