diff --git a/src/org/dyndns/vahagn/sokoban/play/PuzzleLogic.java b/src/org/dyndns/vahagn/sokoban/play/PuzzleLogic.java index 8c7461a..07eed1c 100644 --- a/src/org/dyndns/vahagn/sokoban/play/PuzzleLogic.java +++ b/src/org/dyndns/vahagn/sokoban/play/PuzzleLogic.java @@ -7,6 +7,7 @@ package org.dyndns.vahagn.sokoban.play; import static java.lang.Math.*; import java.util.Arrays; import org.dyndns.vahagn.sokoban.Puzzle; +import static org.dyndns.vahagn.sokoban.App.TAG; /** * @@ -29,7 +30,7 @@ public class PuzzleLogic setOfCells = new int[2*puzzle.getColumnCount()*puzzle.getRowCount()]; } - public boolean createSteps(Animator animator, int x, int y ) + public boolean createSteps(Animator animator, final int x, final int y ) { // // Check that the x,y are valid. @@ -300,7 +301,8 @@ public class PuzzleLogic // Move the worker to the direction. If we cannot move worker // next to the box then we cannot select it. // - if ( !tryMoveWorker(animator, pref_x, pref_y) ) + if ( !puzzle.isValid(pref_x, pref_y) + || !tryMoveWorker(animator, pref_x, pref_y) ) return false; // // Select the box. @@ -440,7 +442,7 @@ public class PuzzleLogic public final boolean isAccessible( int x, int y ) { - return stepsAway(x, y) != Integer.MAX_VALUE; + return puzzle.isValid(x, y) && stepsAway(x, y) != Integer.MAX_VALUE; } public int [] getDirections( int x, int y )