Ejemplo n.º 1
0
        private void clearGroups()
        {
            List<Group> groups = new List<Group>();

            for (int i = 0; i < NUM_ROWS; ++i)
            {
                for (int j = 0; j < NUM_COLUMNS; ++j)
                {
                    if (tiles[i][j] == null)
                        continue;

                    if (passed[i, j])
                        continue;

                    Group g = new Group(this, i, j);
                    g.Report(passed);
                    groups.Add(g);
                }
            }

            foreach (Group g in groups)
            {
                if (g.Size >= Facet.GroupSize)
                {
                    Score.ClearedGroup(g.Size, g.Blocks[1].Number);
                    Rectangle area = g.Blocks[1].Area;
                    area.Inflate(Block.Width * 2, Block.Height * 2);
                    g.Blocks[1].BarfScore(Score.LastBonus);
                    Facet.SendMessage("GroupCleared", (int)Player, g.Size);
                    Clear(g.Blocks);
                }
            }

            //reset marks
            for (int i = 0; i < NUM_ROWS; ++i)
                for (int j = 0; j < NUM_COLUMNS; ++j)
                    passed[i, j] = false;
        }