Skip to content
Snippets Groups Projects
Commit ed163020 authored by Bariatti Francesco's avatar Bariatti Francesco
Browse files

Changed Tile representation in GUI

parent aeef4825
No related branches found
No related tags found
No related merge requests found
...@@ -37,6 +37,8 @@ public class Controller implements Initializable ...@@ -37,6 +37,8 @@ public class Controller implements Initializable
@FXML @FXML
private Polygon tile0, tile1, tile2, tile3, tile4, tile5, tile6, tile7, tile8, tile9, tile10, tile11, tile12, tile13, tile14, tile15, tile16, tile17, tile18, tile19, tile20, tile21, tile22, tile23, tile24, tile25, tile26, tile27, tile28, tile29, tile30, tile31, tile32, tile33, tile34, tile35, tile36, tile37, tile38, tile39, tile40, tile41, tile42, tile43, tile44, tile45, tile46, tile47, tile48, tile49, tile50, tile51, tile52, tile53, tile54, tile55, tile56, tile57, tile58, tile59; private Polygon tile0, tile1, tile2, tile3, tile4, tile5, tile6, tile7, tile8, tile9, tile10, tile11, tile12, tile13, tile14, tile15, tile16, tile17, tile18, tile19, tile20, tile21, tile22, tile23, tile24, tile25, tile26, tile27, tile28, tile29, tile30, tile31, tile32, tile33, tile34, tile35, tile36, tile37, tile38, tile39, tile40, tile41, tile42, tile43, tile44, tile45, tile46, tile47, tile48, tile49, tile50, tile51, tile52, tile53, tile54, tile55, tile56, tile57, tile58, tile59;
@FXML
private Label nbFish0, nbFish1, nbFish2, nbFish3, nbFish4, nbFish5, nbFish6, nbFish7, nbFish8, nbFish9, nbFish10, nbFish11, nbFish12, nbFish13, nbFish14, nbFish15, nbFish16, nbFish17, nbFish18, nbFish19, nbFish20, nbFish21, nbFish22, nbFish23, nbFish24, nbFish25, nbFish26, nbFish27, nbFish28, nbFish29, nbFish30, nbFish31, nbFish32, nbFish33, nbFish34, nbFish35, nbFish36, nbFish37, nbFish38, nbFish39, nbFish40, nbFish41, nbFish42, nbFish43, nbFish44, nbFish45, nbFish46, nbFish47, nbFish48, nbFish49, nbFish50, nbFish51, nbFish52, nbFish53, nbFish54, nbFish55, nbFish56, nbFish57, nbFish58, nbFish59;
@FXML @FXML
private BorderPane mainPane; private BorderPane mainPane;
...@@ -48,13 +50,16 @@ public class Controller implements Initializable ...@@ -48,13 +50,16 @@ public class Controller implements Initializable
public void initialize(URL location, ResourceBundle resources) public void initialize(URL location, ResourceBundle resources)
{ {
Polygon[] fxTiles = {tile0, tile1, tile2, tile3, tile4, tile5, tile6, tile7, tile8, tile9, tile10, tile11, tile12, tile13, tile14, tile15, tile16, tile17, tile18, tile19, tile20, tile21, tile22, tile23, tile24, tile25, tile26, tile27, tile28, tile29, tile30, tile31, tile32, tile33, tile34, tile35, tile36, tile37, tile38, tile39, tile40, tile41, tile42, tile43, tile44, tile45, tile46, tile47, tile48, tile49, tile50, tile51, tile52, tile53, tile54, tile55, tile56, tile57, tile58, tile59}; Polygon[] fxTiles = {tile0, tile1, tile2, tile3, tile4, tile5, tile6, tile7, tile8, tile9, tile10, tile11, tile12, tile13, tile14, tile15, tile16, tile17, tile18, tile19, tile20, tile21, tile22, tile23, tile24, tile25, tile26, tile27, tile28, tile29, tile30, tile31, tile32, tile33, tile34, tile35, tile36, tile37, tile38, tile39, tile40, tile41, tile42, tile43, tile44, tile45, tile46, tile47, tile48, tile49, tile50, tile51, tile52, tile53, tile54, tile55, tile56, tile57, tile58, tile59};
Label[] labels = {nbFish0, nbFish1, nbFish2, nbFish3, nbFish4, nbFish5, nbFish6, nbFish7, nbFish8, nbFish9, nbFish10, nbFish11, nbFish12, nbFish13, nbFish14, nbFish15, nbFish16, nbFish17, nbFish18, nbFish19, nbFish20, nbFish21, nbFish22, nbFish23, nbFish24, nbFish25, nbFish26, nbFish27, nbFish28, nbFish29, nbFish30, nbFish31, nbFish32, nbFish33, nbFish34, nbFish35, nbFish36, nbFish37, nbFish38, nbFish39, nbFish40, nbFish41, nbFish42, nbFish43, nbFish44, nbFish45, nbFish46, nbFish47, nbFish48, nbFish49, nbFish50, nbFish51, nbFish52, nbFish53, nbFish54, nbFish55, nbFish56, nbFish57, nbFish58, nbFish59};
this.board = new Tile[fxTiles.length]; this.board = new Tile[fxTiles.length];
this.boardView = new TileView[fxTiles.length]; this.boardView = new TileView[fxTiles.length];
for (int i = 0; i < fxTiles.length; i++) for (int i = 0; i < fxTiles.length; i++)
{ {
board[i] = new Tile(i, Tile.PenguinPresence.NO_PENGUIN); board[i] = new Tile(i, Tile.PenguinPresence.NO_PENGUIN);
fxTiles[i].setOnMouseClicked(new TileClickHandler(i)); TileClickHandler clickHandler = new TileClickHandler(i);
boardView[i] = new TileView(fxTiles[i], board[i]); fxTiles[i].setOnMouseClicked(clickHandler);
labels[i].setOnMouseClicked(clickHandler);
boardView[i] = new TileView(fxTiles[i], board[i], labels[i]);
} }
this.selectedTile = -1; this.selectedTile = -1;
this.gameState = new GameState(); this.gameState = new GameState();
......
...@@ -79,9 +79,9 @@ public class UpdateThread extends Thread ...@@ -79,9 +79,9 @@ public class UpdateThread extends Thread
} }
//UPDATE VIEW //UPDATE VIEW
for (int i = 0; i < boardView.length; i++)
boardView[i].update();
Platform.runLater(() -> { Platform.runLater(() -> {
for (int i = 0; i < boardView.length; i++)
boardView[i].update();
scoreRed.setText(Integer.toString(gameState.getScore(Player.Red))); scoreRed.setText(Integer.toString(gameState.getScore(Player.Red)));
scoreBlue.setText(Integer.toString(gameState.getScore(Player.Blue))); scoreBlue.setText(Integer.toString(gameState.getScore(Player.Blue)));
turnLabel.setText(gameState.getCurrent_player()+ "'s turn"); turnLabel.setText(gameState.getCurrent_player()+ "'s turn");
......
package view; package view;
import javafx.scene.control.Label;
import javafx.scene.paint.Color; import javafx.scene.paint.Color;
import javafx.scene.shape.Polygon; import javafx.scene.shape.Polygon;
import model.Move; import model.Move;
...@@ -12,14 +13,16 @@ public class TileView ...@@ -12,14 +13,16 @@ public class TileView
{ {
private Polygon fxTile; private Polygon fxTile;
private Tile modelTile; private Tile modelTile;
private Label fishLabel;
private boolean selected, highlighted; private boolean selected, highlighted;
private Move highlightMove = null; // How do we get here from the selected tile (used when highlighting) private Move highlightMove = null; // How do we get here from the selected tile (used when highlighting)
public TileView(Polygon fxTile, Tile modelTile) public TileView(Polygon fxTile, Tile modelTile, Label fishLabel)
{ {
this.fxTile = fxTile; this.fxTile = fxTile;
this.modelTile = modelTile; this.modelTile = modelTile;
this.fishLabel = fishLabel;
} }
/** /**
...@@ -30,20 +33,15 @@ public class TileView ...@@ -30,20 +33,15 @@ public class TileView
//TODO: Better tile representation //TODO: Better tile representation
Color fillColor = null; Color fillColor = null;
//FISH NUMBER //FISH NUMBER
switch (modelTile.getNbFish()) if(modelTile.getNbFish() == 0)
{ {
case 0: fishLabel.setText("");
fillColor = Color.LIGHTBLUE; fillColor = Color.WHITE;
break; }
case 1: else
fillColor = Color.GREENYELLOW; {
break; fishLabel.setText(Integer.toString(modelTile.getNbFish()));
case 2: fillColor = Color.LIGHTBLUE;
fillColor = Color.GREEN;
break;
case 3:
fillColor = Color.DARKGREEN;
break;
} }
//PENGUIN //PENGUIN
if (modelTile.getPenguinPresence().equals(Tile.PenguinPresence.RED_PENGUIN)) if (modelTile.getPenguinPresence().equals(Tile.PenguinPresence.RED_PENGUIN))
...@@ -53,9 +51,9 @@ public class TileView ...@@ -53,9 +51,9 @@ public class TileView
//SELECTION/HIGHLIGHT //SELECTION/HIGHLIGHT
if (selected) if (selected)
fillColor = fillColor.deriveColor(0, 1, 0.5, 1);
if (highlighted)
fillColor = fillColor.deriveColor(0, 0.5, 1, 1); fillColor = fillColor.deriveColor(0, 0.5, 1, 1);
if (highlighted)
fillColor = fillColor.deriveColor(0, 1, 0.5, 1);
fxTile.setFill(fillColor); fxTile.setFill(fillColor);
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.image.*?>
<?import javafx.geometry.*?> <?import javafx.geometry.*?>
<?import javafx.scene.text.*?> <?import javafx.scene.text.*?>
<?import java.lang.*?> <?import java.lang.*?>
...@@ -1016,6 +1017,66 @@ ...@@ -1016,6 +1017,66 @@
<Font size="24.0" /> <Font size="24.0" />
</font> </font>
</Label> </Label>
<Label fx:id="nbFish44" layoutX="61.0" layoutY="202.0" text="0" />
<Label fx:id="nbFish43" layoutX="111.0" layoutY="202.0" text="0" />
<Label fx:id="nbFish42" layoutX="161.0" layoutY="202.0" text="0" />
<Label fx:id="nbFish41" layoutX="211.0" layoutY="202.0" text="0" />
<Label fx:id="nbFish40" layoutX="260.0" layoutY="202.0" text="0" />
<Label fx:id="nbFish39" layoutX="310.0" layoutY="202.0" text="0" />
<Label fx:id="nbFish38" layoutX="360.0" layoutY="202.0" text="0" />
<Label fx:id="nbFish59" layoutX="60.0" layoutY="112.0" text="0" />
<Label fx:id="nbFish58" layoutX="110.0" layoutY="112.0" text="0" />
<Label fx:id="nbFish57" layoutX="160.0" layoutY="112.0" text="0" />
<Label fx:id="nbFish56" layoutX="210.0" layoutY="112.0" text="0" />
<Label fx:id="nbFish55" layoutX="259.0" layoutY="112.0" text="0" />
<Label fx:id="nbFish54" layoutX="309.0" layoutY="112.0" text="0" />
<Label fx:id="nbFish53" layoutX="359.0" layoutY="112.0" text="0" />
<Label fx:id="nbFish29" layoutX="60.0" layoutY="292.0" text="0" />
<Label fx:id="nbFish28" layoutX="110.0" layoutY="292.0" text="0" />
<Label fx:id="nbFish27" layoutX="160.0" layoutY="292.0" text="0" />
<Label fx:id="nbFish26" layoutX="210.0" layoutY="292.0" text="0" />
<Label fx:id="nbFish25" layoutX="259.0" layoutY="292.0" text="0" />
<Label fx:id="nbFish24" layoutX="309.0" layoutY="292.0" text="0" />
<Label fx:id="nbFish23" layoutX="359.0" layoutY="292.0" text="0" />
<Label fx:id="nbFish14" layoutX="60.0" layoutY="383.0" text="0" />
<Label fx:id="nbFish13" layoutX="110.0" layoutY="383.0" text="0" />
<Label fx:id="nbFish12" layoutX="160.0" layoutY="383.0" text="0" />
<Label fx:id="nbFish11" layoutX="210.0" layoutY="383.0" text="0" />
<Label fx:id="nbFish10" layoutX="259.0" layoutY="383.0" text="0" />
<Label fx:id="nbFish9" layoutX="309.0" layoutY="383.0" text="0" />
<Label fx:id="nbFish8" layoutX="359.0" layoutY="383.0" text="0" />
<Label fx:id="nbFish6" layoutX="84.0" layoutY="427.0" text="0" />
<Label fx:id="nbFish5" layoutX="134.0" layoutY="427.0" text="0" />
<Label fx:id="nbFish4" layoutX="184.0" layoutY="427.0" text="0" />
<Label fx:id="nbFish3" layoutX="234.0" layoutY="427.0" text="0" />
<Label fx:id="nbFish2" layoutX="283.0" layoutY="427.0" text="0" />
<Label fx:id="nbFish1" layoutX="333.0" layoutY="427.0" text="0" />
<Label fx:id="nbFish0" layoutX="383.0" layoutY="427.0" text="0" />
<Label fx:id="nbFish21" layoutX="86.0" layoutY="337.0" text="0" />
<Label fx:id="nbFish20" layoutX="136.0" layoutY="337.0" text="0" />
<Label fx:id="nbFish19" layoutX="186.0" layoutY="337.0" text="0" />
<Label fx:id="nbFish18" layoutX="236.0" layoutY="337.0" text="0" />
<Label fx:id="nbFish17" layoutX="285.0" layoutY="337.0" text="0" />
<Label fx:id="nbFish16" layoutX="335.0" layoutY="337.0" text="0" />
<Label fx:id="nbFish15" layoutX="385.0" layoutY="337.0" text="0" />
<Label fx:id="nbFish36" layoutX="85.0" layoutY="247.0" text="0" />
<Label fx:id="nbFish35" layoutX="135.0" layoutY="247.0" text="0" />
<Label fx:id="nbFish34" layoutX="185.0" layoutY="247.0" text="0" />
<Label fx:id="nbFish33" layoutX="235.0" layoutY="247.0" text="0" />
<Label fx:id="nbFish32" layoutX="284.0" layoutY="247.0" text="0" />
<Label fx:id="nbFish31" layoutX="334.0" layoutY="247.0" text="0" />
<Label fx:id="nbFish30" layoutX="384.0" layoutY="247.0" text="0" />
<Label fx:id="nbFish51" layoutX="84.0" layoutY="157.0" text="0" />
<Label fx:id="nbFish50" layoutX="134.0" layoutY="157.0" text="0" />
<Label fx:id="nbFish49" layoutX="184.0" layoutY="157.0" text="0" />
<Label fx:id="nbFish48" layoutX="234.0" layoutY="157.0" text="0" />
<Label fx:id="nbFish47" layoutX="283.0" layoutY="157.0" text="0" />
<Label fx:id="nbFish46" layoutX="333.0" layoutY="157.0" text="0" />
<Label fx:id="nbFish45" layoutX="383.0" layoutY="157.0" text="0" />
<Label fx:id="nbFish7" layoutX="34.0" layoutY="427.0" text="0" />
<Label fx:id="nbFish22" layoutX="34.0" layoutY="337.0" text="0" />
<Label fx:id="nbFish37" layoutX="34.0" layoutY="247.0" text="0" />
<Label fx:id="nbFish52" layoutX="34.0" layoutY="157.0" text="0" />
</children> </children>
</AnchorPane> </AnchorPane>
</center> </center>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment