diff --git a/src/main/java/controller/MainWindowController.java b/src/main/java/controller/MainWindowController.java index e92af36..36b0293 100644 --- a/src/main/java/controller/MainWindowController.java +++ b/src/main/java/controller/MainWindowController.java @@ -34,7 +34,7 @@ public class MainWindowController implements IObserver { private int squareSize=100; private int squarePadding=10; - private int[] boardPosition={40,0}; + private int[] boardPosition={30,0}; private int fontSize=60; @@ -108,10 +108,14 @@ public class MainWindowController implements IObserver { else{ this.score.setText("Score : " + this.model.getScore()); } + int[][] board=this.model.getBoard(); GraphicsContext gc = boardCanvas.getGraphicsContext2D(); gc.clearRect(0,0,500,500); - int[][] board=this.model.getBoard(); + + gc.setFill(Color.rgb(187,173,160)); + gc.fillRect(this.boardPosition[0],this.boardPosition[1], ((this.squareSize+squarePadding)*board.length)+squarePadding, ((this.squareSize+squarePadding)*board[0].length)+squarePadding); + @@ -162,14 +166,11 @@ public class MainWindowController implements IObserver { int x=this.boardPosition[0] + (j*this.squareSize); - int y=this.boardPosition[1] + (i*this.squareSize); + x+=(j+1)*squarePadding; + + int y=this.boardPosition[1] + (i*this.squareSize); + y+=(i+1)*squarePadding; - if(j>0){ - x+=j*squarePadding; - } - if(i>0){ - y+=i*squarePadding; - } gc.fillRect(x,y, this.squareSize, this.squareSize); @@ -194,7 +195,7 @@ public class MainWindowController implements IObserver { } gc.setFont(new Font(localFontSize)); - gc.fillText(strValue, x + (this.squareSize / 2) - ((localFontSize/3)+strValue.length()*localFontSize/5) , y + (this.squareSize / 2) + (localFontSize /3)); + gc.fillText(strValue, x + (this.squareSize / 2) - ((localFontSize/4)+strValue.length()*localFontSize/5) , y + (this.squareSize / 2) + (localFontSize /3)); } diff --git a/src/main/java/model/Board.java b/src/main/java/model/Board.java index 87d8ef7..4d8f9b8 100644 --- a/src/main/java/model/Board.java +++ b/src/main/java/model/Board.java @@ -11,7 +11,8 @@ public class Board implements IModel{ private int[][] board; private Random rand = new Random(); - private LineAlgorithm lineAlgorithm; + private LineAlgorithm lineAlgorithm=new LineAlgorithm(); + public Board(int sizeX, int sizeY){ @@ -111,7 +112,7 @@ public class Board implements IModel{ index=rand.nextInt(choices.size()-1 +1) + 0; } Integer[] xy=(Integer[])choices.toArray()[index]; - int twoOrFour=rand.nextInt(3-0 +1) + 0; + int twoOrFour=rand.nextInt(5-0 +1) + 0; switch (twoOrFour){ case 0: this.board[xy[0]][xy[1]]=4; @@ -141,6 +142,11 @@ public class Board implements IModel{ return this.getCloneOfBoard(); } + @Override + public int getScore() { + return this.lineAlgorithm.getScore(); + } + public boolean isLoosed() { int[][] copyBoard=this.getCloneOfBoard(); @@ -164,6 +170,8 @@ public class Board implements IModel{ } + + private int[][] getCloneOfBoard(){ int[][] copyBoard=new int[this.board.length][this.board[0].length]; for(int i=0;i<this.board.length;i++){ diff --git a/src/main/java/model/IModel.java b/src/main/java/model/IModel.java index 4db2146..6e0a076 100644 --- a/src/main/java/model/IModel.java +++ b/src/main/java/model/IModel.java @@ -5,4 +5,5 @@ package model; */ public interface IModel { int[][] getBoard(); + int getScore(); } diff --git a/src/main/java/model/LineAlgorithm.java b/src/main/java/model/LineAlgorithm.java index 024db5c..0d0364b 100644 --- a/src/main/java/model/LineAlgorithm.java +++ b/src/main/java/model/LineAlgorithm.java @@ -7,7 +7,9 @@ public class LineAlgorithm { - public static int[] mergeRight(int[] line){ + private int score=0; + + public int[] mergeRight(int[] line){ line=gravityRight(line); @@ -19,6 +21,7 @@ public class LineAlgorithm { line[i]=a+b; line[i-1]=-1; i--; + this.score+=(a+b); } } } @@ -88,4 +91,9 @@ public class LineAlgorithm { System.out.println("\n----------"); } + + public int getScore() { + return score; + } + } diff --git a/src/main/resources/JavafxView/MainWindow.fxml b/src/main/resources/JavafxView/MainWindow.fxml index 5cf18e2..78354bf 100644 --- a/src/main/resources/JavafxView/MainWindow.fxml +++ b/src/main/resources/JavafxView/MainWindow.fxml @@ -8,13 +8,22 @@ <?import javafx.scene.canvas.Canvas?> <BorderPane fx:controller="controller.MainWindowController" - xmlns:fx="http://javafx.com/fxml" prefWidth="800" prefHeight="800"> + xmlns:fx="http://javafx.com/fxml" prefWidth="800" prefHeight="800" > <top> + <Text fx:id="score"/> </top> <center> <Canvas fx:id="boardCanvas" height="500" width="500" /> </center> + <bottom> + <GridPane alignment="CENTER"> + <padding><Insets top="25" right="25" bottom="50" left="25"/></padding> + <Button fx:id="restartButton" text="Restart" onAction="#restartGame" GridPane.rowIndex="0" GridPane.columnIndex="0"/> + + </GridPane> + + </bottom> </BorderPane> \ No newline at end of file