private void findMissiledElementsUpside(List <Point> listBomb, Dictionary <int, int> dictionary, List <Point> elementsToDelete)
    {
        visitedBomb.Add(new Point(listBomb[0].GetX(), listBomb[0].GetY()));
        var x = listBomb[0].GetX();

        for (int i = 0; i < Height; i++)
        {
            if (!visitedBomb.Contains(new Point(x, i)))
            {
                if ((Grid[x, i].transform.gameObject.tag.Equals("bomb")))
                {
                    String bombId = Grid[x, i].transform.gameObject.name;
                    Bomb   bomb   = GameObject.Find(bombId).GetComponent <Bomb>();
                    bomb.OnMouseDown();
                }
                else if (Grid[x, i].transform.gameObject.tag.Equals("missile"))
                {
                    String            bombId = Grid[x, i].transform.gameObject.name;
                    MissileHorizontal bomb   = GameObject.Find(bombId).GetComponent <MissileHorizontal>();
                    bomb.OnMouseDown();
                }
                else if (Grid[x, i].transform.gameObject.tag.Equals("upmissile"))
                {
                    String          bombId = Grid[x, i].transform.gameObject.name;
                    MissileVertical bomb   = GameObject.Find(bombId).GetComponent <MissileVertical>();
                    bomb.OnMouseDown();
                }
            }
            addElement(x, i, elementsToDelete, dictionary);
        }
    }
    private void findBombedElements(List <Point> listBomb, Dictionary <int, int> dictionary, List <Point> elementsToDelete)
    {
        visitedBomb.Add(listBomb[0]);
        var deletedBombs = new List <Point>();

        while (listBomb.Count > 0)
        {
            for (int i = listBomb[0].GetX() - 1; i <= listBomb[0].GetX() + 1; i++)
            {
                for (int j = listBomb[0].GetY() - 1; j <= listBomb[0].GetY() + 1; j++)
                {
                    if (i < 0 || i >= Width || j < 0 || j >= Height)
                    {
                        continue;
                    }
                    addElement(i, j, elementsToDelete, dictionary);
                    Point point = new Point(i, j);
                    if (!visitedBomb.Contains(point))
                    {
                        if (Grid[i, j].transform.gameObject.tag.Equals("bomb") && !listBomb.Contains(point) &&
                            !deletedBombs.Contains(point))
                        {
                            String bombId = Grid[i, j].transform.gameObject.name;
                            Bomb   bomb   = GameObject.Find(bombId).GetComponent <Bomb>();
                            bomb.OnMouseDown();
                        }
                        else if (Grid[i, j].transform.gameObject.tag.Equals("missile"))
                        {
                            String            bombId = Grid[i, j].transform.gameObject.name;
                            MissileHorizontal bomb   = GameObject.Find(bombId).GetComponent <MissileHorizontal>();
                            bomb.OnMouseDown();
                        }
                        else if (Grid[i, j].transform.gameObject.tag.Equals("upmissile"))
                        {
                            String          bombId = Grid[i, j].transform.gameObject.name;
                            MissileVertical bomb   = GameObject.Find(bombId).GetComponent <MissileVertical>();
                            bomb.OnMouseDown();
                        }
                    }
                }
            }
            if (listBomb.Count > 0)
            {
                var deletePoint = listBomb[0];
                listBomb.RemoveAt(0);
                deletedBombs.Add(deletePoint);
            }
        }
    }