public static Node[] getUnmarkedNeighbours(Node Start, bool Diagonal)
        {
            Node[] Neighbours = new Node[9];
            int    k = 0;
            int    i = Start.getI(), j = Start.getJ();

            if (i > 0)
            {
                if (!Graph[i - 1, j].isMarked())
                {
                    Neighbours[k] = Graph[i - 1, j];
                    k++;
                }
                if (j > 0)
                {
                    if (Diagonal && !Graph[i - 1, j - 1].isMarked() && !Graph[i, j - 1].isBarrier() && !Graph[i - 1, j].isBarrier())
                    {
                        Neighbours[k++] = Graph[i - 1, j - 1];
                    }
                }
                if (j < WIDTH - 1)
                {
                    if (Diagonal && !Graph[i - 1, j + 1].isMarked() && !Graph[i, j + 1].isBarrier() && !Graph[i - 1, j].isBarrier())
                    {
                        Neighbours[k++] = Graph[i - 1, j + 1];
                    }
                }
            }
            if (i < HEIGHT - 1)
            {
                if (!Graph[i + 1, j].isMarked())
                {
                    Neighbours[k] = Graph[i + 1, j];
                    k++;
                }
                if (j > 0)
                {
                    if (Diagonal && !Graph[i + 1, j - 1].isMarked() && !Graph[i, j - 1].isBarrier() && !Graph[i + 1, j].isBarrier())
                    {
                        Neighbours[k++] = Graph[i + 1, j - 1];
                    }
                }
                if (j < WIDTH - 1)
                {
                    if (Diagonal && !Graph[i + 1, j + 1].isMarked() && !Graph[i, j + 1].isBarrier() && !Graph[i + 1, j].isBarrier())
                    {
                        Neighbours[k++] = Graph[i + 1, j + 1];
                    }
                }
            }

            if (j > 0)
            {
                if (!Graph[i, j - 1].isMarked())
                {
                    Neighbours[k] = Graph[i, j - 1];
                    k++;
                }
            }
            if (j < WIDTH - 1)
            {
                if (!Graph[i, j + 1].isMarked())
                {
                    Neighbours[k] = Graph[i, j + 1];
                    k++;
                }
            }
            while (k < 9)
            {
                Neighbours[k++] = null;
            }
            return(Neighbours);
        }