static boolean check(int x, int y, int type) {
int w = x - 1, e = x + 1, n = y - 1, s = y + 1;
switch (type) {
case NORTH:
if (n < 0) return false;
if (wall[n][x].mark) return false;
break;
case SOUTH:
if (s >= 7) return false;
if (wall[s][x].mark) return false;
break;
case WEST:
if (w < 0) return false;
if (wall[y][w].mark) return false;
break;
case EAST:
if (e >= 7) return false;
if (wall[y][e].mark) return false;
break;
}
return true;
}
static void drawPath(int index) {
Graphics g = img.getGraphics(); g.setColor(Color.blue);
List list = (List) ansList.get(index);
for (int i = 0; i < list.size() - 1; ++i) {
g.drawLine(((Point)list.get(i)).x * CELL + HCELL, ((Point)list.get(i)).y * CELL + HCELL,
((Point)list.get(i+1)).x * CELL + HCELL, ((Point)list.get(i+1)).y * CELL + HCELL);
}
g.dispose(); label.repaint();
}