summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2021-03-02 11:08:05 +0100
committerGustav Sörnäs <gustav@sornas.net>2021-03-02 11:08:05 +0100
commit8672ffb98303ede9114a4b1e251ed447306e69cc (patch)
treed23e83b80dd9e0a8e0efacb3e09a3a41b7947905
parent547f5d5fce350b6889d1165eb4387c16e0de2688 (diff)
downloadtdde30-8672ffb98303ede9114a4b1e251ed447306e69cc.tar.gz
default fall handler
-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);
+}