aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/com/camilstaps/rushhour/Board.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com/camilstaps/rushhour/Board.java')
-rw-r--r--app/src/main/java/com/camilstaps/rushhour/Board.java21
1 files changed, 19 insertions, 2 deletions
diff --git a/app/src/main/java/com/camilstaps/rushhour/Board.java b/app/src/main/java/com/camilstaps/rushhour/Board.java
index bdfb6d4..7f1f842 100644
--- a/app/src/main/java/com/camilstaps/rushhour/Board.java
+++ b/app/src/main/java/com/camilstaps/rushhour/Board.java
@@ -1,9 +1,11 @@
package com.camilstaps.rushhour;
import android.content.Context;
+import android.content.Intent;
import android.util.Log;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
+import android.widget.Toast;
import java.util.HashSet;
import java.util.Set;
@@ -18,6 +20,9 @@ public class Board {
public static final int DIMENSION = 6;
private DriveListener driveListener;
+ private SolveListener solveListener;
+
+ private int score;
/**
* Move a car if possible, and call the appropriate listeners
@@ -37,6 +42,10 @@ public class Board {
}
}
car.move(offset);
+ score++;
+ if (isSolved() && solveListener != null) {
+ solveListener.onSolve(score);
+ }
driveListener.onDrive();
}
};
@@ -76,9 +85,9 @@ public class Board {
* @return
*/
public boolean isSolved() {
- for (int x = DIMENSION - 1; x >= 0; x++) {
+ for (int x = DIMENSION - 1; x >= 0; x--) {
for (Car car : cars) {
- if (car.occupies(new Coordinate(x, 3))) {
+ if (car.occupies(new Coordinate(x, 2))) {
if (car.canMoveHorizontally()) {
return true;
} else {
@@ -94,4 +103,12 @@ public class Board {
driveListener = dl;
}
+ public interface SolveListener {
+ public void onSolve(int score);
+ }
+
+ public void setSolveListener(SolveListener sl) {
+ solveListener = sl;
+ }
+
}