aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorloic <git-account@loicguegan.fr>2016-09-22 20:57:53 +0200
committerloic <git-account@loicguegan.fr>2016-09-22 20:57:53 +0200
commit93953a52ce96a5bd2bfd50f0b323f58901a711e8 (patch)
tree82c2bdad4898985a783cbcdea4a2d54ed09300c8
parent641043d526811d23693afafe300a4aa29827d60e (diff)
Add 2 and 4
-rw-r--r--src/main/java/adapter/ModelAdapter.java4
-rw-r--r--src/main/java/model/Board.java20
2 files changed, 20 insertions, 4 deletions
diff --git a/src/main/java/adapter/ModelAdapter.java b/src/main/java/adapter/ModelAdapter.java
index 1eac58a..35eba94 100644
--- a/src/main/java/adapter/ModelAdapter.java
+++ b/src/main/java/adapter/ModelAdapter.java
@@ -24,28 +24,24 @@ public class ModelAdapter implements IModelAdapter, IObservable{
@Override
public void goUp() {
model.goUp();
- model.addRandomNumber();
this.notifyObservers();
}
@Override
public void goDown() {
model.goDown();
- model.addRandomNumber();
this.notifyObservers();
}
@Override
public void goLeft() {
model.goLeft();
- model.addRandomNumber();
this.notifyObservers();
}
@Override
public void goRight() {
model.goRight();
- model.addRandomNumber();
this.notifyObservers();
}
diff --git a/src/main/java/model/Board.java b/src/main/java/model/Board.java
index 8d1586d..87d8ef7 100644
--- a/src/main/java/model/Board.java
+++ b/src/main/java/model/Board.java
@@ -20,6 +20,8 @@ public class Board implements IModel{
}
public void goUp() {
+ int [][] lastBoard=this.getCloneOfBoard();
+
for(int i=0;i<this.board[0].length;i++){
int[] column=this.lineAlgorithm.reverseLine(this.getColumn(i));
@@ -28,30 +30,48 @@ public class Board implements IModel{
this.setColumn(this.lineAlgorithm.reverseLine(this.lineAlgorithm.mergeRight(column)), i);
}
+ if(!boardsIsEquals(this.board,lastBoard)){
+ this.addRandomNumber();
+ }
}
public void goDown() {
+ int [][] lastBoard=this.getCloneOfBoard();
+
for(int i=0;i<this.board[0].length;i++){
int[] column=this.getColumn(i);
this.setColumn(this.lineAlgorithm.mergeRight(column), i);
}
+ if(!boardsIsEquals(this.board,lastBoard)){
+ this.addRandomNumber();
+ }
}
public void goLeft() {
+ int [][] lastBoard=this.getCloneOfBoard();
+
for(int i=0;i<this.board.length;i++){
int[] tmp=this.lineAlgorithm.reverseLine(board[i]);
tmp=this.lineAlgorithm.mergeRight(tmp);
tmp=this.lineAlgorithm.reverseLine(tmp);
this.board[i]=tmp;
}
+ if(!boardsIsEquals(this.board,lastBoard)){
+ this.addRandomNumber();
+ }
}
public void goRight() {
+ int [][] lastBoard=this.getCloneOfBoard();
+
for(int i=0;i<this.board.length;i++){
this.board[i]=this.lineAlgorithm.mergeRight(board[i]);
}
+ if(!boardsIsEquals(this.board,lastBoard)){
+ this.addRandomNumber();
+ }
}