private void BombMove(Bombs bombList, Skiers skiList, Bricks brickList) { Int32 countSkier = 0; Int32 [] IndSkier = new Int32[bombList.CountPlayer]; Int32 countBomb = 0; Int32 [] IndBomb = new Int32[bombList.CountPlayer]; foreach (Bomb st in bombList) { if (Map.GetItem(st.TOP / 25 + 1, st.LEFT / 25) == ItemName.Skier) { foreach (Skier sk in skiList) { if ((st.LEFT == sk.LEFT) && (st.TOP == (sk.TOP - 25))) { IndSkier[countSkier] = skiList.IndexOf(sk); IndBomb[countBomb] = bombList.IndexOf(st); Invalidate(new Rectangle(sk.LEFT, sk.TOP, 25, 25)); Invalidate(new Rectangle(st.LEFT, st.TOP, 25, 25)); Map.SetItem(st.TOP / 25, st.LEFT / 25, ItemName.Null); Map.SetItem(sk.TOP / 25, sk.LEFT / 25, ItemName.Null); countSkier++; countBomb++; } } } } Array.Sort(IndSkier); Array.Reverse(IndSkier); Array.Sort(IndBomb); Array.Reverse(IndBomb); for (int i = 0; i < countBomb; i++) { bombList.RemovePlayer(IndBomb[i]); } for (int i = 0; i < countSkier; i++) { skiList.RemovePlayer(IndSkier[i]); } foreach (Bomb st in bombList) { if (st.Moving(trac) == true) { if (st.BombDirec == Direction.Down) { InvalidateDown(st); } if (st.BombDirec == Direction.Left) { InvalidateLeft(st); } if (st.BombDirec == Direction.Right) { InvalidateRight(st); } } } }