summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/se/liu/gusso230/tetris/Board.java4
-rw-r--r--src/se/liu/gusso230/tetris/DefaultFallHandler.java7
-rw-r--r--src/se/liu/gusso230/tetris/FallHandler.java5
3 files changed, 15 insertions, 1 deletions
diff --git a/src/se/liu/gusso230/tetris/Board.java b/src/se/liu/gusso230/tetris/Board.java
index 56e39a6..678e0fb 100644
--- a/src/se/liu/gusso230/tetris/Board.java
+++ b/src/se/liu/gusso230/tetris/Board.java
@@ -35,6 +35,8 @@ public class Board {
private int timerDelay;
private List<BoardListener> boardListeners;
+ private FallHandler fallHandler = new DefaultFallHandler();
+
private final static Random RND = new Random();
private final static int POINTS_ONE_LINE = 100;
@@ -136,7 +138,7 @@ public class Board {
}
private boolean hasFallingCollision() {
- return !falling.onlyCoversEmpty(fallingX, fallingY, this);
+ return fallHandler.hasFallingCollision(this);
}
private boolean fallingIsOutside() {
diff --git a/src/se/liu/gusso230/tetris/DefaultFallHandler.java b/src/se/liu/gusso230/tetris/DefaultFallHandler.java
new file mode 100644
index 0000000..e9269d8
--- /dev/null
+++ b/src/se/liu/gusso230/tetris/DefaultFallHandler.java
@@ -0,0 +1,7 @@
+package se.liu.gusso230.tetris;
+
+public class DefaultFallHandler implements FallHandler {
+ @Override public boolean hasFallingCollision(final Board board) {
+ return !board.getFalling().onlyCoversEmpty(board.getFallingX(), board.getFallingY(), board);
+ }
+}
diff --git a/src/se/liu/gusso230/tetris/FallHandler.java b/src/se/liu/gusso230/tetris/FallHandler.java
new file mode 100644
index 0000000..0e335d6
--- /dev/null
+++ b/src/se/liu/gusso230/tetris/FallHandler.java
@@ -0,0 +1,5 @@
+package se.liu.gusso230.tetris;
+
+public interface FallHandler {
+ boolean hasFallingCollision(Board board);
+}