diff options
| author | loic <git-account@loicguegan.fr> | 2016-09-22 20:57:53 +0200 |
|---|---|---|
| committer | loic <git-account@loicguegan.fr> | 2016-09-22 20:57:53 +0200 |
| commit | 93953a52ce96a5bd2bfd50f0b323f58901a711e8 (patch) | |
| tree | 82c2bdad4898985a783cbcdea4a2d54ed09300c8 | |
| parent | 641043d526811d23693afafe300a4aa29827d60e (diff) | |
Add 2 and 4
| -rw-r--r-- | src/main/java/adapter/ModelAdapter.java | 4 | ||||
| -rw-r--r-- | src/main/java/model/Board.java | 20 |
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(); + } } |
