UPDATE Constant LaticeApplicationConsole LaticeAplicationWindow
MainScreenController | ADD attribute to GameBoard, method getNumberOfTilesRemaining to Tilemaster
parent
596a675aaf
commit
933340b2ef
|
@ -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();*/
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue