UPDATE Constant LaticeApplicationConsole LaticeAplicationWindow

MainScreenController | ADD attribute to GameBoard, method
getNumberOfTilesRemaining to Tile
master
Mathis 2022-06-02 21:50:34 +02:00
parent 596a675aaf
commit 933340b2ef
7 changed files with 238 additions and 206 deletions

View File

@ -132,19 +132,20 @@ public class LaticeApplicationConsole {
player = player2; player = player2;
} }
while (round) {
System.out.println("c'est à votre tour de jouer " + player.getName() +"!"); System.out.println("c'est à votre tour de jouer " + player.getName() +"!");
while (round) {
player.getRack().displayRack();
System.out.println("Vous avez " + player.getScore() +" points, que voulez-vous faire ?\n" System.out.println("Vous avez " + player.getScore() +" points, que voulez-vous faire ?\n"
+ " 1. Jouer une Tuile (à partir de la deuxième tuile jouée, cela coûtera 2 points)\n" + " 1. Jouer une Tuile (à partir de la deuxième tuile jouée, cela coûtera 2 points)\n"
+ " 2. Acheter une action supplémentaire\n" + " 2. Acheter une action supplémentaire\n"
+ " 3. Changer le Rack et passer(coûte 3 points)\n" + " 3. Changer le Rack et passer(coûte 3 points)\n"
+ " 4. Passer\n"); + " 4. Passer\n");
System.out.print("Choix : ");
int choiceMenu = Integer.parseInt(play.next()); int choiceMenu = Integer.parseInt(play.next());
switch(choiceMenu) { switch(choiceMenu) {
case 1: if (arbitre.checkScoreToPlay(player, freeTile) == false){ case 1: if (freeTile) {
System.out.println("Il vous faut 2 points pour jouer un nouvelle tuile !!!");
}else {
Boolean rulesCheck = false; Boolean rulesCheck = false;
while (rulesCheck == false) { while (rulesCheck == false) {
@ -158,10 +159,12 @@ public class LaticeApplicationConsole {
start = false; start = false;
} }
board.setGridBoard(" "+tile.getShapeConsole()+tile.getColorConsole()+" ", tile.getPositionRow(), tile.getPositionColumn()); board.setGridBoardTile(tile, tile.getPositionRow(), tile.getPositionColumn());
player.getRack().removeTile(tile); player.getRack().removeTile(tile);
board.displayGameBoard(); board.displayGameBoard();
} }
break; break;
@ -170,10 +173,11 @@ public class LaticeApplicationConsole {
if (player.getScore()>=3) { if (player.getScore()>=3) {
//Donner une action supplémentaire et enlever 3 points au joueur //Donner une action supplémentaire et enlever 3 points au joueur
player.Play(play, board, 0); player.Play(play, board, 0);
player.diffScore(3); player.diffScore(2);
}else { }else {
System.out.println("Il vous faut 3 points pour acheter une nouvelle action !"); System.out.println("Il vous faut 2 points pour acheter une nouvelle action !");
} }
break;
@ -181,6 +185,7 @@ public class LaticeApplicationConsole {
System.out.println("Votre rack à été changé avec succès !"); System.out.println("Votre rack à été changé avec succès !");
case 4: System.out.println("Votre tour est terminé " + player.getName() + " !"); case 4: System.out.println("Votre tour est terminé " + player.getName() + " !");
player.getRack().updateRack();
round = false; round = false;
break; break;
@ -189,43 +194,23 @@ public class LaticeApplicationConsole {
} }
/* System.out.println("-------------------------------------------------------------------------------------------");
if (PlayOrPass == 2) {
round = false; if (player1.getNumberOfTilesRemaining() < player2.getNumberOfTilesRemaining()) {
System.out.println("Votre tour est terminé " + player.getName() + " !"); System.out.println("-------------- Félicitations" + player1.getName() + " pour votre victoire !! --------------");
System.out.println("-------------- Nos condoléances " + player2.getName() + " pour votre victoire !! --------------");
System.out.println("Le gagnant de la partie est " + player1.getName() + " car il a posé le plus de tuiles sur le plateau Latice !!");
System.out.println(player2.getName() + ", vous êtes tombés sur un joueur plus fort que vous. Réentrainez-vous pour pouvoir prendre votre vengeance hehe");
}else if (player2.getNumberOfTilesRemaining() < player1.getNumberOfTilesRemaining()){
System.out.println("-------------- Félicitations" + player2.getName() + " pour votre victoire !! --------------");
System.out.println("-------------- Nos condoléances " + player1.getName() + " pour votre victoire !! --------------");
System.out.println("Le gagnant de la partie est " + player2.getName() + " car il a posé le plus de tuiles sur le plateau Latice !!");
System.out.println(player1.getName() + ", vous êtes tombés sur un joueur plus fort que vous. Réentrainez-vous pour pouvoir prendre votre vengeance hehe");
}else {
System.out.println("Match nul !! Recommencez une partie si vous voulez vous départagez !!");
} }
while (round) {
Boolean rulesCheck = false;
System.out.println("c'est à votre tour de jouer " + player.getName() +"!");
while (rulesCheck == false) {
tile = player.Play(play,board,i);
rulesCheck = arbitre.arbitration(player, board, tile, START);
};
if (i == 0) {
START = false;
}
board.setGridBoard(" "+tile.getShapeConsole()+tile.getColorConsole()+" ", tile.getPositionRow(), tile.getPositionColumn());
player.getRack().removeTile(tile);
board.displayGameBoard();
System.out.println(player.getName() + " ! Voulez-vous passer votre tour ou continuer à jouer ? 1.continuer ou 2.passer");
int ContinueOrPass = Integer.parseInt(play.next());
if (ContinueOrPass == 2) {
round = false;
System.out.println("Votre tour est terminé " + player.getName() + " !");
}
}
player.getRack().updateRack();*/
} }
} }

View File

@ -4,10 +4,11 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import javafx.animation.Interpolator;
import javafx.animation.KeyFrame;
import javafx.animation.KeyValue;
import javafx.animation.Timeline;
import javafx.application.Application; import javafx.application.Application;
import javafx.beans.binding.Bindings;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.event.EventHandler; import javafx.event.EventHandler;
import javafx.fxml.FXMLLoader; import javafx.fxml.FXMLLoader;
import javafx.geometry.Insets; import javafx.geometry.Insets;
@ -36,25 +37,24 @@ import javafx.scene.layout.VBox;
import javafx.scene.paint.ImagePattern; import javafx.scene.paint.ImagePattern;
import javafx.scene.shape.Rectangle; import javafx.scene.shape.Rectangle;
import javafx.scene.text.Font; import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text; import javafx.scene.text.Text;
import javafx.stage.Stage; import javafx.stage.Stage;
import javafx.util.Duration;
import latice.controller.MainScreenController; import latice.controller.MainScreenController;
import latice.controller.PlayerNameInputController;
import latice.model.Color; import latice.model.Color;
import latice.model.Constant; import latice.model.Constant;
import latice.model.Player; import latice.model.Player;
import latice.model.Position;
import latice.model.Rules;
import latice.model.Shape; import latice.model.Shape;
import latice.model.Tile; import latice.model.Tile;
import latice.model.console.Deck; import latice.model.console.Deck;
import latice.model.console.GameBoard;
import latice.model.console.Rack; import latice.model.console.Rack;
import latice.model.console.Score;
import latice.model.window.PlayerFX; import latice.model.window.PlayerFX;
import latice.model.window.RectangleFX;
public class LaticeApplicationWindow extends Application { public class LaticeApplicationWindow extends Application {
javafx.scene.paint.Color realColor = new javafx.scene.paint.Color(0, 0, 0, 0);
Image image = new Image("backgroundLatice.png"); Image image = new Image("backgroundLatice.png");
ImageView imageView = new ImageView(image); ImageView imageView = new ImageView(image);
@ -81,6 +81,7 @@ public class LaticeApplicationWindow extends Application {
//StackPane for background image + BorderPane onto it //StackPane for background image + BorderPane onto it
StackPane root = new StackPane(); StackPane root = new StackPane();
static Stage primaryStageCopy; static Stage primaryStageCopy;
StackPane parentStackPane = new StackPane(); StackPane parentStackPane = new StackPane();
Label moonErrorLabel = new Label(); Label moonErrorLabel = new Label();
@ -99,8 +100,46 @@ public class LaticeApplicationWindow extends Application {
public void start(Stage primaryStage) throws Exception{ public void start(Stage primaryStage) throws Exception{
Parent loader = FXMLLoader.load(getClass().getResource("../view/MainScreen.fxml")); Parent loader = FXMLLoader.load(getClass().getResource("../view/MainScreen.fxml"));
Scene menu = new Scene(loader, 1280, 720); Scene menu = new Scene(loader, 1280, 720);
MainScreenController MSC = new MainScreenController(); MainScreenController MSC = new MainScreenController();
parentStackPane = MSC.getParentStackPane();
setPrimaryStage(primaryStageCopy);
setRootLayout(root);
primaryStage.setResizable(false);
primaryStage.setTitle("Latice");
primaryStage.setScene(menu);
primaryStage.show();
}
public void startGame(Stage stage, StackPane parentStackPaneStock, Player player1, Player player2, Object menuBorderPane) {
parentStackPane = parentStackPaneStock;
//StackPane root = getRootLayout();
//root.translateYProperty().set(stage.getHeight());
System.out.println(parentStackPane);
System.out.println(parentStackPaneStock);
parentStackPane.getChildren().add(root);
//parameters of the animation
Timeline timeline = new Timeline();
KeyValue kv = new KeyValue(root.translateYProperty(), 0, Interpolator.EASE_IN);
KeyFrame kf = new KeyFrame(Duration.seconds(1), kv);
timeline.getKeyFrames().add(kf);
//when the animation is finished we're removing the main screen
timeline.setOnFinished(t -> {
parentStackPane.getChildren().remove(menuBorderPane);
});
timeline.play();
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
//Title //Title
VBox topVbox = new VBox(); VBox topVbox = new VBox();
@ -109,7 +148,7 @@ public class LaticeApplicationWindow extends Application {
topVbox.getChildren().add(title); topVbox.getChildren().add(title);
topVbox.setAlignment(Pos.CENTER); topVbox.setAlignment(Pos.CENTER);
moonErrorLabel.setFont(new Font(20)); moonErrorLabel.setFont(new Font(20));
moonErrorLabel.setTextFill(realColor.RED); moonErrorLabel.setTextFill(Constant.realColor.RED);
topVbox.getChildren().add(moonErrorLabel); topVbox.getChildren().add(moonErrorLabel);
borderPane.setTop(topVbox); borderPane.setTop(topVbox);
@ -122,16 +161,16 @@ public class LaticeApplicationWindow extends Application {
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
//Creating rectangle for tiles placement //Creating rectangle for tiles placement
Rectangle[][] r = new Rectangle[9][9]; Rectangle[][] rect = new Rectangle[9][9];
int counterI = 0; int counterI = 0;
int counterJ = 0; int counterJ = 0;
for (int i=1; i<=Constant.NUMBER_OF_BOX_ON_ONE_LINE ; i++) { for (int i=1; i<=Constant.NUMBER_OF_BOX_ON_ONE_LINE ; i++) {
for (int j=1; j <= Constant.NUMBER_OF_BOX_ON_ONE_LINE ; j++) { for (int j=1; j <= Constant.NUMBER_OF_BOX_ON_ONE_LINE ; j++) {
r[counterI][counterJ] = new Rectangle(i*Constant.BOX_WIDTH+Constant.X_CENTER,j*Constant.BOX_WIDTH+Constant.Y_CENTER,Constant.RECTANGLE_WIDTH,Constant.RECTANGLE_HEIGHT); rect[counterI][counterJ] = new Rectangle(i*Constant.BOX_WIDTH+Constant.X_CENTER,j*Constant.BOX_WIDTH+Constant.Y_CENTER,Constant.RECTANGLE_WIDTH,Constant.RECTANGLE_HEIGHT);
r[counterI][counterJ].setFill(realColor.TRANSPARENT); rect[counterI][counterJ].setFill(Constant.realColor.TRANSPARENT);
pane.getChildren().add(r[counterI][counterJ]); pane.getChildren().add(rect[counterI][counterJ]);
System.out.println(r[counterI][counterJ]); System.out.println(rect[counterI][counterJ]);
System.out.println(counterJ); System.out.println(counterJ);
counterJ++; counterJ++;
} }
@ -141,36 +180,14 @@ public class LaticeApplicationWindow extends Application {
} }
borderPane.setCenter(pane); borderPane.setCenter(pane);
System.out.println(r); System.out.println(rect);
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
//###################### Instantiating of players ######################/// //GameBoard
//create the list of all tiles GameBoard board = new GameBoard();
ArrayList<Tile> listOfTile = new ArrayList<Tile>();
for (Color color : Color.values()) {
for (Shape shape : Shape.values()) {
Tile tile = new Tile(color, shape);
//System.out.println(color.getStringColor() + shape.getStringShape()+ ".png");
listOfTile.add(tile); //Referee
Rules referee = new Rules();
}
}
//setting decks for the 2 players
Deck deck1 = new Deck(listOfTile);
Deck deck2 = new Deck(listOfTile);
//setting player names
StringProperty name1 = new SimpleStringProperty();
StringProperty name2 = new SimpleStringProperty();
//name1.bind(PlayerNameInputController.namePlayer1);
//name2.bind(PlayerNameInputController.namePlayer2);
//Player player1 = new Player(namePlayer1.getText(), new Score(), deck1, new Rack(deck1));
//Player player2 = new Player(namePlayer2.getText(), new Score(), deck2, new Rack(deck2));
//Player player1 = MSC.instanciatePlayer(PlayerNameInputController.getNomJoueur1());
//Player player2 = MSC.instanciatePlayer(PlayerNameInputController.getNomJoueur2());
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
//Rack //Rack
@ -199,6 +216,8 @@ public class LaticeApplicationWindow extends Application {
//deck.displayListTile(); //deck.displayListTile();
//Player
Player player = player1;
//Confirm Button //Confirm Button
@ -277,7 +296,8 @@ public class LaticeApplicationWindow extends Application {
}); });
rackImage.getChildren().addAll(confirmButton, changeButton, buyActionButton); rackImage.getChildren().addAll(confirmButton, changeButton, buyActionButton);
root.setBottom(rackImage); borderPane.setBottom(rackImage);
//Adding lists to Arraylists //Adding lists to Arraylists
listRackTile = rack2.getListRackTile(); listRackTile = rack2.getListRackTile();
@ -308,32 +328,32 @@ public class LaticeApplicationWindow extends Application {
int a = i; int a = i;
int b = j; int b = j;
r[a][b].setOnDragEntered(new EventHandler<DragEvent>() { rect[a][b].setOnDragEntered(new EventHandler<DragEvent>() {
@Override @Override
public void handle(DragEvent arg0) { public void handle(DragEvent arg0) {
if (arg0.getDragboard().hasString()){ if (arg0.getDragboard().hasString()){
Dragboard dragboard = arg0.getDragboard(); Dragboard dragboard = arg0.getDragboard();
r[a][b].setFill(new ImagePattern(listTileImage.get(getIndexTileClicked()))); rect[a][b].setFill(new ImagePattern(listTileImage.get(getIndexTileClicked())));
} }
arg0.consume(); arg0.consume();
} }
}); });
r[a][b].setOnDragExited(new EventHandler<DragEvent>() { rect[a][b].setOnDragExited(new EventHandler<DragEvent>() {
@Override @Override
public void handle(DragEvent arg0) { public void handle(DragEvent arg0) {
if (arg0.isDropCompleted() == false) { if (arg0.isDropCompleted() == false) {
r[a][b].setFill(realColor.TRANSPARENT); rect[a][b].setFill(Constant.realColor.TRANSPARENT);
} }
arg0.consume(); arg0.consume();
} }
}); });
r[a][b].setOnDragOver(new EventHandler <DragEvent>() { rect[a][b].setOnDragOver(new EventHandler <DragEvent>() {
@Override @Override
public void handle(DragEvent arg0) { public void handle(DragEvent arg0) {
arg0.acceptTransferModes(TransferMode.ANY); arg0.acceptTransferModes(TransferMode.ANY);
@ -341,31 +361,70 @@ public class LaticeApplicationWindow extends Application {
} }
}); });
r[a][b].setOnDragDropped(new EventHandler<DragEvent>() { rect[a][b].setOnDragDropped(new EventHandler<DragEvent>() {
@Override @Override
public void handle(DragEvent arg0) { public void handle(DragEvent arg0) {
System.out.println("entered"); System.out.println("entered");
Dragboard dragboard = arg0.getDragboard(); Dragboard dragboard = arg0.getDragboard();
System.out.println("OK2");
rect[a][b].setFill(new ImagePattern(listTileImage.get(getIndexTileClicked())));
r[a][b].setFill(new ImagePattern(listTileImage.get(getIndexTileClicked())));
arg0.setDropCompleted(true); arg0.setDropCompleted(true);
assocRectangleTile.put(r[a][b], listRackTile.get(getIndexTileClicked())); System.out.println("OK");
System.out.println(assocRectangleTile.toString()); //assocRectangleTile.put(rect[a][b], listRackTile.get(getIndexTileClicked()));
//System.out.println(assocRectangleTile.toString());
moonErrorLabel.setText(""); moonErrorLabel.setText("");
if (validateBtnClickedCount == 0){ if (validateBtnClickedCount == 0){
if (r[a][b] == r[4][4]) { if (Constant.START) {
if (rect[a][b] == rect[4][4]) {
System.out.println("MOON valid placement"); System.out.println("MOON valid placement");
//assocRectangleTile.put(rect[a][b], listRackTile.get(getIndexTileClicked()));
board.setGridBoardTile(listRackTile.get(getIndexTileClicked()), a, b);
Constant.START = false;
}else { }else {
moonErrorLabel.setText("Error ! Please place the first tile on the moon"); moonErrorLabel.setText("Error ! Please place the first tile on the moon");
//removing all tiles from gameboard //removing all tiles from gameboard
for(int i=0; i<Constant.NUMBER_OF_BOX_ON_ONE_LINE; i++) { rect[a][b].setFill(Constant.realColor.TRANSPARENT);
for(int j=0; j<Constant.NUMBER_OF_BOX_ON_ONE_LINE; j++) {
r[i][j].setFill(realColor.TRANSPARENT);
}
}
System.out.println("Please place first Tile on MOON"); System.out.println("Please place first Tile on MOON");
} }
}else {
System.out.println("OK3");
System.out.println("Règle effectué");
listRackTile.get(getIndexTileClicked()).setPosition(new Position(a,b));
int nbr = referee.neighborRule(board , listRackTile.get(getIndexTileClicked()));
if (nbr == 0) {
System.out.println("l'emplacement où est posé la tuile n'a pas de voisin ou il n'y a pas de correspondance avec les voisins !");
rect[a][b].setFill(Constant.realColor.TRANSPARENT);
}else {
if (nbr == 2) {
System.out.println("Vous avez gagné 1 point");
}else if (nbr == 3) {
System.out.println("Vous avez gagné 2 points");
}else if (nbr == 4) {
System.out.println("Vous avez gagné 4 points");
}
//assocRectangleTile.put(rect[a][b], listRackTile.get(getIndexTileClicked()));
board.setGridBoardTile(listRackTile.get(getIndexTileClicked()), a, b);
System.out.println("tuile posé!");
}
}
} }
@ -381,57 +440,25 @@ public class LaticeApplicationWindow extends Application {
//rules / referee implementaion //rules / referee implementaion
this.transition(namePlayer1, namePlayer2); //this.transition(namePlayer1, namePlayer2);
//root.setLeft(namePlayer1); //root.setLeft(namePlayer1);
//###################### display name, score and deck of each player ######################//
HBox players = new HBox();
ArrayList<Player> allPlayers = new ArrayList<>();
allPlayers.add(player1);
allPlayers.add(player2);
for (Player nameplayer : allPlayers ) {
VBox player = new VBox();
Text name = new Text();
name.setFont(Font.font(nameplayer.getName(), FontWeight.BOLD, 20));
name.setText(nameplayer.getName());
Text score = new Text();
score.setText("Score : ");
Text nbrOfTiles = new Text();
nbrOfTiles.setText("Tuiles restantes : ");
player.getChildren().addAll(name, score, nbrOfTiles);
player.setSpacing(5);
players.getChildren().add(player);
players.setMargin(player, new Insets(50,0,0,55));
}
System.out.println("largeur : " + root.getMaxWidth());
players.setSpacing(850);
parentStackPane = MSC.getParentStackPane();
HBox players = PlayerFX.displayPlayers(parentStackPane,player1, player2);
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
setPrimaryStage(primaryStage);
setRootLayout(root); root.getChildren().addAll(players, borderPane);
//root.getChildren().add(borderPane);
primaryStage.setResizable(false);
primaryStage.setTitle("Latice");
primaryStage.setScene(menu);
primaryStage.show();
//Règles
} }
@ -439,7 +466,6 @@ public class LaticeApplicationWindow extends Application {
private void setDragnDropOnRack(HBox rackImage) { private void setDragnDropOnRack(HBox rackImage) {
//Setting drag n drop on tiles //Setting drag n drop on tiles
for (int i=0; i<5; i++) { for (int i=0; i<5; i++) {
@ -493,28 +519,4 @@ public class LaticeApplicationWindow extends Application {
LaticeApplicationWindow.indexTileClicked = indexTileClicked; LaticeApplicationWindow.indexTileClicked = indexTileClicked;
} }
/*//player names setters
public void setNamePlayer1(String namePlayer1) {
this.namePlayer1.setText(namePlayer1);
}
public void setNamePlayer2(String namePlayer2) {
this.namePlayer2.setText(namePlayer2);
}*/
public void playerNamesEntered() {
System.out.println("entered playNamesEntered()" + namePlayer1.getText() + " VS " + namePlayer2.getText());
MainScreenController MSC = new MainScreenController();
MSC.setParentStackPane(parentStackPane);
primaryStageCopy.setTitle("working");
}
public void transition(Label player1, Label player2) {
borderPane.setLeft(player1);
borderPane.setRight(player2);
}
} }

View File

@ -125,10 +125,11 @@ public class MainScreenController extends LaticeApplicationWindow{
} }
public void startGameInstruction() { public void startGameInstruction() {
startGame(mainStage);
startGame(mainStage, parentStackPaneStock, player1, player2, menuBorderPane);
} }
public void startGame(Stage stage) { /*public void startGame(Stage stage) {
parentStackPane = parentStackPaneStock; parentStackPane = parentStackPaneStock;
StackPane root = getRootLayout(); StackPane root = getRootLayout();
root.translateYProperty().set(stage.getHeight()); root.translateYProperty().set(stage.getHeight());
@ -150,9 +151,14 @@ public class MainScreenController extends LaticeApplicationWindow{
parentStackPane.getChildren().remove(menuBorderPane); parentStackPane.getChildren().remove(menuBorderPane);
}); });
timeline.play(); timeline.play();
}
//Règles
}*/
public StackPane getParentStackPane() { public StackPane getParentStackPane() {
System.out.println(parentStackPane);
return parentStackPane; return parentStackPane;
} }

View File

@ -1,6 +1,9 @@
package latice.model; package latice.model;
public class Constant { public class Constant {
//
public static Boolean START = true;
//for creating rectangles //for creating rectangles
public static final int NUMBER_OF_BOX_ON_ONE_LINE = 9; public static final int NUMBER_OF_BOX_ON_ONE_LINE = 9;
@ -18,4 +21,7 @@ public class Constant {
public static final int ACTION_BUTTONS_HEIGHT = 45; public static final int ACTION_BUTTONS_HEIGHT = 45;
//Color
public static javafx.scene.paint.Color realColor = new javafx.scene.paint.Color(0, 0, 0, 0);
} }

View File

@ -63,7 +63,7 @@ public class Player {
public Tile Play(Scanner play, GameBoard board, Integer start) { public Tile Play(Scanner play, GameBoard board, Integer start) {
if (this.getScore() == 0) { if (this.getScore() <= 1) {
System.out.println("Vous avez " + this.getScore() + " point"); System.out.println("Vous avez " + this.getScore() + " point");
@ -74,13 +74,12 @@ public class Player {
System.out.print("Quel tuile voulez-vous jouez ? "); System.out.print("Quel tuile voulez-vous jouez ? ");
this.rack.displayRack(); this.rack.displayRack();
System.out.println(1);
Integer idTileToPlay = Integer.parseInt(play.next())-1; Integer idTileToPlay = Integer.parseInt(play.next())-1;
Tile tileToPlay = this.rack.getListRackTile().get(idTileToPlay); Tile tileToPlay = this.rack.getListRackTile().get(idTileToPlay);
System.out.print("Sur quelle ligne, voulez-vous placer la tuile ?"); System.out.print("Sur quelle ligne, voulez-vous placer la tuile ?");
int row = Integer.parseInt(play.next()); int row = Integer.parseInt(play.next())-1;
System.out.print("Sur quelle colonne, voulez-vous placer la tuile ?"); System.out.print("Sur quelle colonne, voulez-vous placer la tuile ?");
int column = Integer.parseInt(play.next()); int column = Integer.parseInt(play.next())-1;
tileToPlay.setPosition(new Position(row, column)); tileToPlay.setPosition(new Position(row, column));
return tileToPlay; return tileToPlay;

View File

@ -1,5 +1,8 @@
package latice.model.console; package latice.model.console;
import latice.model.Position;
import latice.model.Tile;
public class GameBoard { public class GameBoard {
private Integer DIMENSION = 9; private Integer DIMENSION = 9;
public static final String SUN = " SU "; public static final String SUN = " SU ";
@ -7,6 +10,7 @@ public class GameBoard {
public static final String BLUE = " "; public static final String BLUE = " ";
private String[][] gridBoard; private String[][] gridBoard;
private Tile[][] gridBoardTile = new Tile[DIMENSION][DIMENSION];;
public GameBoard() { public GameBoard() {
this.gridBoard = new String[DIMENSION][DIMENSION]; this.gridBoard = new String[DIMENSION][DIMENSION];
@ -43,34 +47,54 @@ public class GameBoard {
} }
public void displayGameBoard() { public void displayGameBoard() {
System.out.println(" 1. 2. 3. 4. 5. 6. 7. 8. 9.");
System.out.println(" +----+----+----+----+----+----+----+----+----+");
for (int i = 0; i < DIMENSION; i++) { for (int i = 0; i < DIMENSION; i++) {
System.out.print(i+1 + ". ");
for (int j = 0; j < DIMENSION; j++) { for (int j = 0; j < DIMENSION; j++) {
System.out.print("|"); System.out.print("|");
if (i == 4 && j == 4) { //Affiche la lune au centre du plateau if (i == 4 && j == 4) { //Affiche la lune au centre du plateau
if (this.gridBoardTile[i][j] == null) {
System.out.print(this.gridBoard[i][j]); System.out.print(this.gridBoard[i][j]);
}else {
System.out.print(" " + this.gridBoardTile[i][j].getShapeConsole() + this.gridBoardTile[i][j].getColorConsole() + " ");
}
}else if (i == j && (i <= 2 || i >= 6)) { //Affiche la diagonale ('\') de soleil }else if (i == j && (i <= 2 || i >= 6)) { //Affiche la diagonale ('\') de soleil
if (this.gridBoardTile[i][j] == null) {
System.out.print(this.gridBoard[i][j]); System.out.print(this.gridBoard[i][j]);
}else {
System.out.print(" " + this.gridBoardTile[i][j].getShapeConsole() + this.gridBoardTile[i][j].getColorConsole() + " ");
}
}else if (i == DIMENSION-1-j && (i <= 2 || i >= 6)) { //Affiche la diagonale ('/') de soleil }else if (i == DIMENSION-1-j && (i <= 2 || i >= 6)) { //Affiche la diagonale ('/') de soleil
if (this.gridBoardTile[i][j] == null) {
System.out.print(this.gridBoard[i][j]); System.out.print(this.gridBoard[i][j]);
}else {
System.out.print(" " + this.gridBoardTile[i][j].getShapeConsole() + this.gridBoardTile[i][j].getColorConsole() + " ");
}
}else if ( ((i == 0 || i == 8)&& j == 4) || (i== 4 && (j == 0 || j == 8)) ) {//Affiche les soleils au mileu de chaque coté ('+') }else if ( ((i == 0 || i == 8)&& j == 4) || (i== 4 && (j == 0 || j == 8)) ) {//Affiche les soleils au mileu de chaque coté ('+')
if (this.gridBoardTile[i][j] == null) {
System.out.print(this.gridBoard[i][j]); System.out.print(this.gridBoard[i][j]);
}else {
System.out.print(" " + this.gridBoardTile[i][j].getShapeConsole() + this.gridBoardTile[i][j].getColorConsole() + " ");
}
}else { }else {
if (this.gridBoardTile[i][j] == null) {
System.out.print(this.gridBoard[i][j]); System.out.print(this.gridBoard[i][j]);
}else {
System.out.print(" " + this.gridBoardTile[i][j].getShapeConsole() + this.gridBoardTile[i][j].getColorConsole() + " ");
}
} }
if (j == 8) { if (j == 8) {
System.out.println("|"); System.out.println("|");
System.out.println(" +----+----+----+----+----+----+----+----+----+");
} }
} }
} }
} }
@ -84,5 +108,15 @@ public class GameBoard {
} }
public Tile[][] getGridBoardTile() {
return gridBoardTile;
}
public void setGridBoardTile(Tile tile, Integer x, Integer y) {
tile.setPosition(new Position(x,y));
this.gridBoardTile[x][y] = tile;
}
} }

View File

@ -22,18 +22,18 @@ public class PlayerFX {
allPlayers.add(player1); allPlayers.add(player1);
allPlayers.add(player2); allPlayers.add(player2);
for (Player nameplayer : allPlayers ) { for (Player namePlayer : allPlayers ) {
VBox player = new VBox(); VBox player = new VBox();
Text name = new Text(); Text name = new Text();
name.setFont(Font.font(nameplayer.getName(), FontWeight.BOLD, 20)); name.setFont(Font.font(namePlayer.getName(), FontWeight.BOLD, 20));
name.setText(nameplayer.getName()); name.setText(namePlayer.getName());
Text score = new Text(); Text score = new Text();
score.setText("Score : "); score.setText("Score : " + namePlayer.getScore());
Text nbrOfTiles = new Text(); Text nbrOfTiles = new Text();
nbrOfTiles.setText("Tuiles restantes : "); nbrOfTiles.setText("Tuiles restantes : " + namePlayer.getNumberOfTilesRemaining());
player.getChildren().addAll(name, score, nbrOfTiles); player.getChildren().addAll(name, score, nbrOfTiles);
player.setSpacing(5); player.setSpacing(5);
@ -41,7 +41,7 @@ public class PlayerFX {
players.getChildren().add(player); players.getChildren().add(player);
players.setMargin(player, new Insets(50,0,0,55)); players.setMargin(player, new Insets(50,0,0,55));
} }
System.out.println("largeur : " + root.getMaxWidth());
players.setSpacing(850); players.setSpacing(850);
return players; return players;
} }