public ArrayList moves(Point point)
    {
        ArrayList a = new ArrayList();
        Iterator it = point.neighbors().iterator();
        while(true)
        {
            if (!it.hasNext())
                break;
            Point point1 = (Point) it.next();
            if (isInBounds(point1) && isOpen(point1) && !isVisited(point1))
                a.add(point1);
        }
        return a;
    }