コード例 #1
0
 public void remHeroAt(Box.Position pos)
 {
     for (int i = 0; i < Hero.Count; i++)
     {
         if (Hero[i].Pos.I == pos.I && Hero[i].Pos.J == pos.J)
         {
             Hero.RemoveAt(i);
             return;
         }
     }
 }
コード例 #2
0
 public void remEnemyAt(Box.Position pos)
 {
     for (int i = 0; i < Enemy.Count; i++)
     {
         if (Enemy[i].Pos.I == pos.I && Enemy[i].Pos.J == pos.J)
         {
             Enemy.RemoveAt(i);
             SCORE++;
             return;
         }
     }
 }
コード例 #3
0
        public void miniCluster()
        {
            MiniCluster = new List <Box>();
            Box.Position ps = this.getInact();

            if (ps.I - 1 >= 0 && ps.J - 1 >= CEIL)
            {
                MiniCluster.Add(ClusterBox[ps.I - 1, ps.J - 1]);
            }
            if (ps.I + 1 <= (NO - 1) && ps.J + 1 <= (NO - 1))
            {
                MiniCluster.Add(ClusterBox[ps.I + 1, ps.J + 1]);
            }

            if (ps.I - 1 >= 0 && ps.J + 1 <= (NO - 1))
            {
                MiniCluster.Add(ClusterBox[ps.I - 1, ps.J + 1]);
            }
            if (ps.I + 1 <= (NO - 1) && ps.J - 1 >= CEIL)
            {
                MiniCluster.Add(ClusterBox[ps.I + 1, ps.J - 1]);
            }

            if (ps.I - 1 >= 0)
            {
                MiniCluster.Add(ClusterBox[ps.I - 1, ps.J]);
            }
            if (ps.J - 1 >= CEIL)
            {
                MiniCluster.Add(ClusterBox[ps.I, ps.J - 1]);
            }
            if (ps.I + 1 <= (NO - 1))
            {
                MiniCluster.Add(ClusterBox[ps.I + 1, ps.J]);
            }
            if (ps.J + 1 <= (NO - 1))
            {
                MiniCluster.Add(ClusterBox[ps.I, ps.J + 1]);
            }
        }
コード例 #4
0
        public void KEYPRESS(engine.Engine e, KeyEventArgs key)
        {
            //Box.Position ps = this.getInact();

            //getHero();


            if (key.KeyCode == Keys.W || key.KeyCode == Keys.Up || key.KeyCode == Keys.NumPad8)
            {
                for (int k = 0; k < Hero.Count; k++)
                {
                    Box          b     = Hero[k];
                    Box          INEPT = b;
                    Box.Position ps    = b.Pos;

                    if (ps.J - 1 >= CEIL)
                    {
                        if ((int)ClusterBox[ps.I, ps.J - 1].Knd == 2)
                        {
                            remEnemyAt(new Box.Position(ps.I, ps.J - 1));
                            ClusterBox[ps.I, ps.J - 1].Knd = Box.Kind.ACTIVE;
                        }

                        INEPT.Knd = Box.Kind.ACTIVE;
                        //remHeroAt(INEPT.Pos);
                        ClusterBox[ps.I, ps.J - 1].Knd = Box.Kind.INACTIVE;
                        //Hero.Add(ClusterBox[ps.I, ps.J - 1]);
                    }
                }
            }
            if (key.KeyCode == Keys.S || key.KeyCode == Keys.Down || key.KeyCode == Keys.NumPad2)
            {
                for (int k = 0; k < Hero.Count; k++)
                {
                    Box          b = Hero[k]; Box INEPT = b;
                    Box.Position ps = b.Pos;
                    if (ps.J + 1 <= NO - 1)
                    {
                        if ((int)ClusterBox[ps.I, ps.J + 1].Knd == 2)
                        {
                            remEnemyAt(new Box.Position(ps.I, ps.J + 1));
                            ClusterBox[ps.I, ps.J + 1].Knd = Box.Kind.ACTIVE;
                        }

                        INEPT.Knd = Box.Kind.ACTIVE;
                        //remHeroAt(INEPT.Pos);
                        ClusterBox[ps.I, ps.J + 1].Knd = Box.Kind.INACTIVE;
                        //Hero.Add(ClusterBox[ps.I, ps.J + 1]);
                    }
                }
            }
            if (key.KeyCode == Keys.A || key.KeyCode == Keys.Left || key.KeyCode == Keys.NumPad4)
            {
                for (int k = 0; k < Hero.Count; k++)
                {
                    Box          b = Hero[k]; Box INEPT = b;
                    Box.Position ps = b.Pos;

                    if (ps.I - 1 >= 0 && (ClusterBox[ps.I - 1, ps.J].Knd != Box.Kind.INACTIVE))
                    {
                        if ((int)ClusterBox[ps.I - 1, ps.J].Knd == 2)
                        {
                            remEnemyAt(new Box.Position(ps.I - 1, ps.J));
                            ClusterBox[ps.I - 1, ps.J].Knd = Box.Kind.ACTIVE;
                            SCORE++;
                        }


                        INEPT.Knd = Box.Kind.ACTIVE;
                        //remHeroAt(INEPT.Pos);
                        ClusterBox[ps.I - 1, ps.J].Knd = Box.Kind.INACTIVE;
                        //Hero.Add(ClusterBox[ps.I - 1, ps.J]);
                    }
                }
            }
            if (key.KeyCode == Keys.D || key.KeyCode == Keys.Right || key.KeyCode == Keys.NumPad6)
            {
                for (int k = Hero.Count - 1; k >= 0; k--)
                {
                    Box          b     = Hero[k];
                    Box          INEPT = b;
                    Box.Position ps    = b.Pos;

                    if (ps.I + 1 < NO && (ClusterBox[ps.I + 1, ps.J].Knd != Box.Kind.INACTIVE))
                    {
                        if ((int)ClusterBox[ps.I + 1, ps.J].Knd == 2)
                        {
                            remEnemyAt(new Box.Position(ps.I + 1, ps.J));
                            ClusterBox[ps.I + 1, ps.J].Knd = Box.Kind.ACTIVE;
                            SCORE++;
                        }

                        INEPT.Knd = Box.Kind.ACTIVE;
                        //remHeroAt(INEPT.Pos);
                        ClusterBox[ps.I + 1, ps.J].Knd = Box.Kind.INACTIVE;
                        //Hero.Add(ClusterBox[ps.I + 1, ps.J]);
                    }
                }
            }

            if (key.KeyCode == Keys.NumPad7)
            {
                for (int k = 0; k < Hero.Count; k++)
                {
                    Box          b = Hero[k]; Box INEPT = b;
                    Box.Position ps = b.Pos;
                    if (ps.I - 1 >= 0 && ps.J - 1 >= CEIL)
                    {
                        if ((int)ClusterBox[ps.I - 1, ps.J - 1].Knd == 2)
                        {
                            remEnemyAt(new Box.Position(ps.I - 1, ps.J - 1));
                            ClusterBox[ps.I - 1, ps.J - 1].Knd = Box.Kind.ACTIVE;
                        }
                        INEPT.Knd = Box.Kind.ACTIVE;
                        //remHeroAt(INEPT.Pos);
                        ClusterBox[ps.I - 1, ps.J - 1].Knd = Box.Kind.INACTIVE;
                        //Hero.Add(ClusterBox[ps.I - 1, ps.J - 1]);
                    }
                }
            }

            if (key.KeyCode == Keys.NumPad3)
            {
                for (int k = 0; k < Hero.Count; k++)
                {
                    Box          b = Hero[k]; Box INEPT = b;
                    Box.Position ps = b.Pos;
                    if (ps.I + 1 <= NO - 1 && ps.J + 1 <= NO - 1)
                    {
                        if ((int)ClusterBox[ps.I + 1, ps.J + 1].Knd == 2)
                        {
                            remEnemyAt(new Box.Position(ps.I + 1, ps.J + 1));
                            ClusterBox[ps.I + 1, ps.J + 1].Knd = Box.Kind.ACTIVE;
                        }

                        INEPT.Knd = Box.Kind.ACTIVE;
                        //remHeroAt(INEPT.Pos);
                        ClusterBox[ps.I + 1, ps.J + 1].Knd = Box.Kind.INACTIVE;
                        //Hero.Add(ClusterBox[ps.I + 1, ps.J + 1]);
                    }
                }
            }

            if (key.KeyCode == Keys.NumPad9)
            {
                for (int k = 0; k < Hero.Count; k++)
                {
                    Box          b = Hero[k]; Box INEPT = b;
                    Box.Position ps = b.Pos;
                    if (ps.I + 1 <= NO - 1 && ps.J - 1 >= CEIL)
                    {
                        if ((int)ClusterBox[ps.I + 1, ps.J - 1].Knd == 2)
                        {
                            remEnemyAt(new Box.Position(ps.I + 1, ps.J - 1));
                            ClusterBox[ps.I + 1, ps.J - 1].Knd = Box.Kind.ACTIVE;
                        }

                        INEPT.Knd = Box.Kind.ACTIVE;
                        //remHeroAt(INEPT.Pos);
                        ClusterBox[ps.I + 1, ps.J - 1].Knd = Box.Kind.INACTIVE;
                        //Hero.Add(ClusterBox[ps.I + 1, ps.J - 1]);
                    }
                }
            }

            if (key.KeyCode == Keys.NumPad1)
            {
                for (int k = 0; k < Hero.Count; k++)
                {
                    Box          b = Hero[k]; Box INEPT = b;
                    Box.Position ps = b.Pos;
                    if (ps.I - 1 >= 0 && ps.J + 1 <= NO - 1)
                    {
                        if ((int)ClusterBox[ps.I - 1, ps.J + 1].Knd == 2)
                        {
                            remEnemyAt(new Box.Position(ps.I - 1, ps.J + 1));
                            ClusterBox[ps.I - 1, ps.J + 1].Knd = Box.Kind.ACTIVE;
                        }

                        INEPT.Knd = Box.Kind.ACTIVE;
                        //remHeroAt(INEPT.Pos);
                        ClusterBox[ps.I - 1, ps.J + 1].Knd = Box.Kind.INACTIVE;
                        //Hero.Add(ClusterBox[ps.I - 1, ps.J + 1]);
                    }
                }
            }

            getHero();
            e.C();
            this.DRAW(e);
        }