reorganisation of all packages | ADD Playgame, RectangleFX |
MODIFICATION in LaticeApplicationWindow PlayerNameInputController and MainScreenControllermaster
parent
ee4f4451a2
commit
7fe5d99364
|
@ -6,14 +6,14 @@ import java.util.Scanner;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import latice.model.Color;
|
import latice.model.Color;
|
||||||
import latice.model.Deck;
|
|
||||||
import latice.model.GameBoard;
|
|
||||||
import latice.model.Player;
|
import latice.model.Player;
|
||||||
import latice.model.Rack;
|
|
||||||
import latice.model.Rules;
|
import latice.model.Rules;
|
||||||
import latice.model.Score;
|
|
||||||
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.GameBoard;
|
||||||
|
import latice.model.console.Rack;
|
||||||
|
import latice.model.console.Score;
|
||||||
|
|
||||||
public class LaticeApplicationConsole {
|
public class LaticeApplicationConsole {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
|
@ -1,16 +1,12 @@
|
||||||
package latice.application;
|
package latice.application;
|
||||||
|
|
||||||
import java.net.URL;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.ResourceBundle;
|
|
||||||
|
|
||||||
import javafx.application.Application;
|
import javafx.application.Application;
|
||||||
import javafx.event.EventHandler;
|
import javafx.event.EventHandler;
|
||||||
import javafx.fxml.FXML;
|
|
||||||
import javafx.fxml.FXMLLoader;
|
import javafx.fxml.FXMLLoader;
|
||||||
import javafx.fxml.Initializable;
|
|
||||||
import javafx.geometry.Insets;
|
import javafx.geometry.Insets;
|
||||||
import javafx.geometry.Pos;
|
import javafx.geometry.Pos;
|
||||||
import javafx.scene.Parent;
|
import javafx.scene.Parent;
|
||||||
|
@ -33,18 +29,23 @@ import javafx.scene.layout.BorderPane;
|
||||||
import javafx.scene.layout.HBox;
|
import javafx.scene.layout.HBox;
|
||||||
import javafx.scene.layout.Pane;
|
import javafx.scene.layout.Pane;
|
||||||
import javafx.scene.layout.StackPane;
|
import javafx.scene.layout.StackPane;
|
||||||
|
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 latice.controller.MainScreenController;
|
import latice.controller.MainScreenController;
|
||||||
import latice.controller.PlayerNameInputController;
|
import latice.controller.PlayerNameInputController;
|
||||||
import latice.model.Color;
|
import latice.model.Color;
|
||||||
import latice.model.Deck;
|
import latice.model.Player;
|
||||||
import latice.model.Rack;
|
|
||||||
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.Rack;
|
||||||
|
import latice.model.console.Score;
|
||||||
|
import latice.model.window.RectangleFX;
|
||||||
|
|
||||||
public class LaticeApplicationWindow extends Application {
|
public class LaticeApplicationWindow extends Application {
|
||||||
|
|
||||||
|
@ -74,16 +75,22 @@ public class LaticeApplicationWindow extends Application {
|
||||||
ArrayList<Tile> listOfTile = new ArrayList<Tile>();
|
ArrayList<Tile> listOfTile = new ArrayList<Tile>();
|
||||||
Map<Rectangle, Tile> assocRectangleTile = new HashMap<Rectangle, Tile>();
|
Map<Rectangle, Tile> assocRectangleTile = new HashMap<Rectangle, Tile>();
|
||||||
static StackPane rootLayout;
|
static StackPane rootLayout;
|
||||||
private Label namePlayer1 = new Label("Anonym");
|
private Label namePlayer1 = new Label("Anonyme");
|
||||||
private Label namePlayer2 = new Label("Anonym");
|
private Label namePlayer2 = new Label("Anonyme");
|
||||||
|
|
||||||
public static int indexTileClicked;
|
public static int indexTileClicked;
|
||||||
|
|
||||||
|
|
||||||
|
//settings players
|
||||||
|
public Player player1;
|
||||||
|
public Player player2;
|
||||||
|
|
||||||
//root layout
|
//root layout
|
||||||
BorderPane root = new BorderPane();
|
BorderPane root = new BorderPane();
|
||||||
|
|
||||||
//StackPane for background image + BorderPane root onto it
|
//StackPane for background image + BorderPane root onto it
|
||||||
StackPane stackPane = new StackPane();
|
StackPane stackPane = new StackPane();
|
||||||
|
|
||||||
static Stage primaryStageCopy;
|
static Stage primaryStageCopy;
|
||||||
StackPane parentStackPane = new StackPane();
|
StackPane parentStackPane = new StackPane();
|
||||||
|
|
||||||
|
@ -104,13 +111,13 @@ public class LaticeApplicationWindow extends Application {
|
||||||
Scene menu = new Scene(loader, 1280, 720);
|
Scene menu = new Scene(loader, 1280, 720);
|
||||||
MainScreenController MSC = new MainScreenController();
|
MainScreenController MSC = new MainScreenController();
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
//Title
|
//Title
|
||||||
Text title = new Text("Latice");
|
Text title = new Text("Latice");
|
||||||
title.setFont(new Font(30));
|
title.setFont(new Font(30));
|
||||||
root.setTop(title);
|
root.setTop(title);
|
||||||
root.setAlignment(title, Pos.CENTER);
|
root.setAlignment(title, Pos.CENTER);
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
//Image
|
//Image
|
||||||
Pane pane = new Pane();
|
Pane pane = new Pane();
|
||||||
BackgroundImage myBG= new BackgroundImage(image,
|
BackgroundImage myBG= new BackgroundImage(image,
|
||||||
|
@ -118,7 +125,7 @@ public class LaticeApplicationWindow extends Application {
|
||||||
BackgroundSize.DEFAULT);
|
BackgroundSize.DEFAULT);
|
||||||
stackPane.setBackground(new Background(myBG));
|
stackPane.setBackground(new Background(myBG));
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
//Creating rectangle for tiles placement
|
//Creating rectangle for tiles placement
|
||||||
Rectangle[][] r = new Rectangle[9][9];
|
Rectangle[][] r = new Rectangle[9][9];
|
||||||
int counterI = 0;
|
int counterI = 0;
|
||||||
|
@ -140,9 +147,32 @@ public class LaticeApplicationWindow extends Application {
|
||||||
|
|
||||||
root.setCenter(pane);
|
root.setCenter(pane);
|
||||||
System.out.println(r);
|
System.out.println(r);
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
//###################### Instantiating of players ######################///
|
||||||
|
//create the list of all tiles
|
||||||
|
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);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//setting decks for the 2 players
|
||||||
|
Deck deck1 = new Deck(listOfTile);
|
||||||
|
Deck deck2 = new Deck(listOfTile);
|
||||||
|
|
||||||
|
//setting player names
|
||||||
|
//String name1 = PlayerNameInputController.getNomJoueur1().getText();
|
||||||
|
//String name2 = PlayerNameInputController.getNomJoueur2().getText();
|
||||||
|
|
||||||
|
|
||||||
|
Player player1 = new Player(namePlayer1.getText(), new Score(), deck1, new Rack(deck1));
|
||||||
|
Player player2 = new Player(namePlayer2.getText(), new Score(), deck2, new Rack(deck2));
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
//Rack
|
//Rack
|
||||||
|
@ -207,113 +237,65 @@ public class LaticeApplicationWindow extends Application {
|
||||||
|
|
||||||
|
|
||||||
//Setting OnDragDetected on tiles
|
//Setting OnDragDetected on tiles
|
||||||
for (int i=0; i<5; i++) {
|
setDragnDropOnRack(rackImage);
|
||||||
int a = i;
|
|
||||||
rackImage.getChildren().get(a).setOnDragDetected(new EventHandler<MouseEvent>() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void handle(MouseEvent arg0) {
|
|
||||||
Dragboard dragboard = rackImage.getChildren().get(a).startDragAndDrop(TransferMode.ANY);
|
|
||||||
ClipboardContent content = new ClipboardContent();
|
|
||||||
dragboard.setDragView(listTileImage.get(a));
|
|
||||||
content.putString("Hello !");
|
|
||||||
setIndexTileClicked(a);
|
|
||||||
dragboard.setContent(content);
|
|
||||||
arg0.consume();
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
rackImage.getChildren().get(a).setOnDragDone(new EventHandler<DragEvent>() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void handle(DragEvent arg0) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
System.out.println((indexTileClicked));
|
System.out.println((indexTileClicked));
|
||||||
ImagePattern imagePattern = new ImagePattern(listTileImage.get(getIndexTileClicked()));
|
ImagePattern imagePattern = new ImagePattern(listTileImage.get(getIndexTileClicked()));
|
||||||
|
|
||||||
//Setting drag & drop on rectangles
|
//------------------------------------------------------------------------
|
||||||
for(int i=0; i<NUMBER_OF_BOX_ON_ONE_LINE; i++) {
|
//###################### creating all rectangles and DragnDrop ######################//
|
||||||
for(int j=0; j<NUMBER_OF_BOX_ON_ONE_LINE; j++) {
|
RectangleFX rectFX = new RectangleFX();
|
||||||
int a = i;
|
rectFX.createRectangle(root, pane);
|
||||||
int b = j;
|
rectFX.dragnDropOnAllRectangles(player1, indexTileClicked, validateBtnClickedCount);
|
||||||
|
rectFX.dragnDropOnAllRectangles(player2, indexTileClicked, validateBtnClickedCount);
|
||||||
r[a][b].setOnDragEntered(new EventHandler<DragEvent>() {
|
//------------------------------------------------------------------------
|
||||||
|
|
||||||
@Override
|
|
||||||
public void handle(DragEvent arg0) {
|
|
||||||
if (arg0.getDragboard().hasString()){
|
|
||||||
Dragboard dragboard = arg0.getDragboard();
|
|
||||||
|
|
||||||
r[a][b].setFill(new ImagePattern(listTileImage.get(getIndexTileClicked())));
|
|
||||||
}
|
|
||||||
arg0.consume();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
r[a][b].setOnDragExited(new EventHandler<DragEvent>() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void handle(DragEvent arg0) {
|
|
||||||
if (arg0.isDropCompleted() == false) {
|
|
||||||
r[a][b].setFill(realColor.TRANSPARENT);
|
|
||||||
}
|
|
||||||
arg0.consume();
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
r[a][b].setOnDragOver(new EventHandler <DragEvent>() {
|
|
||||||
@Override
|
|
||||||
public void handle(DragEvent arg0) {
|
|
||||||
arg0.acceptTransferModes(TransferMode.ANY);
|
|
||||||
arg0.consume();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
r[a][b].setOnDragDropped(new EventHandler<DragEvent>() {
|
|
||||||
@Override
|
|
||||||
public void handle(DragEvent arg0) {
|
|
||||||
System.out.println("entered");
|
|
||||||
Dragboard dragboard = arg0.getDragboard();
|
|
||||||
|
|
||||||
r[a][b].setFill(new ImagePattern(listTileImage.get(getIndexTileClicked())));
|
|
||||||
arg0.setDropCompleted(true);
|
|
||||||
assocRectangleTile.put(r[a][b], listRackTile.get(getIndexTileClicked()));
|
|
||||||
System.out.println(assocRectangleTile.toString());
|
|
||||||
if (validateBtnClickedCount == 0){
|
|
||||||
if (r[a][b] == r[4][4]) {
|
|
||||||
System.out.println("MOON valid placement");
|
|
||||||
}else {
|
|
||||||
System.out.println("Please place first Tile on MOON");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
arg0.consume();
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//rules / referee implementaion
|
//rules / referee implementaion
|
||||||
|
|
||||||
|
this.transition(namePlayer1, namePlayer2);
|
||||||
|
//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);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
root.setLeft(namePlayer1);
|
|
||||||
parentStackPane = MSC.getParentStackPane();
|
parentStackPane = MSC.getParentStackPane();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
setPrimaryStage(primaryStage);
|
setPrimaryStage(primaryStage);
|
||||||
setRootLayout(stackPane);
|
setRootLayout(stackPane);
|
||||||
stackPane.getChildren().add(root);
|
stackPane.getChildren().addAll(players, root);
|
||||||
|
|
||||||
primaryStage.setResizable(false);
|
primaryStage.setResizable(false);
|
||||||
primaryStage.setTitle("Latice");
|
primaryStage.setTitle("Latice");
|
||||||
|
@ -321,6 +303,39 @@ public class LaticeApplicationWindow extends Application {
|
||||||
primaryStage.show();
|
primaryStage.show();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void setDragnDropOnRack(HBox rackImage) {
|
||||||
|
for (int i=0; i<5; i++) {
|
||||||
|
int index = i;
|
||||||
|
rackImage.getChildren().get(index).setOnDragDetected(new EventHandler<MouseEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handle(MouseEvent arg0) {
|
||||||
|
Dragboard dragboard = rackImage.getChildren().get(index).startDragAndDrop(TransferMode.ANY);
|
||||||
|
ClipboardContent content = new ClipboardContent();
|
||||||
|
dragboard.setDragView(listTileImage.get(index));
|
||||||
|
content.putString("Hello !");
|
||||||
|
indexTileClicked = index;
|
||||||
|
//setIndexTileClicked(index);
|
||||||
|
dragboard.setContent(content);
|
||||||
|
arg0.consume();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
rackImage.getChildren().get(index).setOnDragDone(new EventHandler<DragEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handle(DragEvent arg0) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
public static void setRootLayout(StackPane root) {
|
public static void setRootLayout(StackPane root) {
|
||||||
rootLayout = root;
|
rootLayout = root;
|
||||||
}
|
}
|
||||||
|
@ -344,25 +359,28 @@ public class LaticeApplicationWindow extends Application {
|
||||||
LaticeApplicationWindow.indexTileClicked = indexTileClicked;
|
LaticeApplicationWindow.indexTileClicked = indexTileClicked;
|
||||||
}
|
}
|
||||||
|
|
||||||
//player names setters
|
/*//player names setters
|
||||||
public void setNamePlayer1(String namePlayer1) {
|
public void setNamePlayer1(String namePlayer1) {
|
||||||
this.namePlayer1.setText(namePlayer1);
|
this.namePlayer1.setText(namePlayer1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNamePlayer2(String namePlayer2) {
|
public void setNamePlayer2(String namePlayer2) {
|
||||||
this.namePlayer2.setText(namePlayer2);
|
this.namePlayer2.setText(namePlayer2);
|
||||||
}
|
}*/
|
||||||
|
|
||||||
public void playerNamesEntered() {
|
public void playerNamesEntered() {
|
||||||
System.out.println("entered playNamesEntered()" + namePlayer1.getText() + " VS " + namePlayer2.getText());
|
System.out.println("entered playNamesEntered()" + namePlayer1.getText() + " VS " + namePlayer2.getText());
|
||||||
HBox scoreHbox = new HBox();
|
|
||||||
scoreHbox.getChildren().add(namePlayer1);
|
|
||||||
scoreHbox.getChildren().add(namePlayer2);
|
|
||||||
Text working = new Text("Working");
|
|
||||||
root.setLeft(working);
|
|
||||||
MainScreenController MSC = new MainScreenController();
|
MainScreenController MSC = new MainScreenController();
|
||||||
MSC.setParentStackPane(parentStackPane);
|
MSC.setParentStackPane(parentStackPane);
|
||||||
|
|
||||||
primaryStageCopy.setTitle("working");
|
primaryStageCopy.setTitle("working");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void transition(Label player1, Label player2) {
|
||||||
|
|
||||||
|
root.setLeft(player1);
|
||||||
|
root.setRight(player2);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package latice.controller;
|
package latice.controller;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import javafx.animation.Interpolator;
|
import javafx.animation.Interpolator;
|
||||||
import javafx.animation.KeyFrame;
|
import javafx.animation.KeyFrame;
|
||||||
|
@ -21,6 +22,13 @@ import javafx.stage.Modality;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
import javafx.util.Duration;
|
import javafx.util.Duration;
|
||||||
import latice.application.LaticeApplicationWindow;
|
import latice.application.LaticeApplicationWindow;
|
||||||
|
import latice.model.Color;
|
||||||
|
import latice.model.Player;
|
||||||
|
import latice.model.Shape;
|
||||||
|
import latice.model.Tile;
|
||||||
|
import latice.model.console.Deck;
|
||||||
|
import latice.model.console.Rack;
|
||||||
|
import latice.model.console.Score;
|
||||||
|
|
||||||
public class MainScreenController extends LaticeApplicationWindow{
|
public class MainScreenController extends LaticeApplicationWindow{
|
||||||
@FXML
|
@FXML
|
||||||
|
@ -36,6 +44,11 @@ public class MainScreenController extends LaticeApplicationWindow{
|
||||||
public static Stage mainStage;
|
public static Stage mainStage;
|
||||||
private static StackPane parentStackPaneStock;
|
private static StackPane parentStackPaneStock;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public Player player1;
|
||||||
|
public Player player2;
|
||||||
|
|
||||||
// Event Listener on Rectangle[#playButton].onMouseClicked
|
// Event Listener on Rectangle[#playButton].onMouseClicked
|
||||||
@FXML
|
@FXML
|
||||||
public void playButtonClicked(MouseEvent event) throws IOException {
|
public void playButtonClicked(MouseEvent event) throws IOException {
|
||||||
|
@ -141,4 +154,24 @@ public class MainScreenController extends LaticeApplicationWindow{
|
||||||
this.parentStackPane = parentStackPane;
|
this.parentStackPane = parentStackPane;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Player instanciatePlayer(String namePlayer) {
|
||||||
|
//###################### Instantiating of players ######################///
|
||||||
|
//create the list of all tiles
|
||||||
|
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);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//setting decks for the 2 players
|
||||||
|
Deck deck = new Deck(listOfTile);
|
||||||
|
Deck deck2 = new Deck(listOfTile);
|
||||||
|
|
||||||
|
Player player = new Player(namePlayer, new Score(), deck, new Rack(deck));
|
||||||
|
return player;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
package latice.controller;
|
package latice.controller;
|
||||||
|
|
||||||
import javafx.application.Platform;
|
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.scene.Node;
|
import javafx.scene.Node;
|
||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.Button;
|
||||||
|
|
||||||
import javafx.scene.control.TextField;
|
import javafx.scene.control.TextField;
|
||||||
import javafx.scene.input.MouseEvent;
|
import javafx.scene.input.MouseEvent;
|
||||||
|
import javafx.scene.layout.StackPane;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
import latice.application.LaticeApplicationWindow;
|
import latice.application.LaticeApplicationWindow;
|
||||||
|
|
||||||
|
@ -28,12 +27,39 @@ public class PlayerNameInputController {
|
||||||
//setting player names
|
//setting player names
|
||||||
String name1 = nomJoueur1.getText();
|
String name1 = nomJoueur1.getText();
|
||||||
String name2 = nomJoueur2.getText();
|
String name2 = nomJoueur2.getText();
|
||||||
laticeApplicationWindow.setNamePlayer1(name1);
|
|
||||||
laticeApplicationWindow.setNamePlayer2(name2);
|
|
||||||
btnClicked = true;
|
btnClicked = true;
|
||||||
nameInputStage.close();
|
nameInputStage.close();
|
||||||
laticeApplicationWindow.playerNamesEntered();
|
playerNamesEntered();
|
||||||
|
laticeApplicationWindow.player1 = mainScreenController.instanciatePlayer(name1);
|
||||||
|
laticeApplicationWindow.player2 = mainScreenController.instanciatePlayer(name2);
|
||||||
mainScreenController.startGameInstruction();
|
mainScreenController.startGameInstruction();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TextField getNomJoueur1() {
|
||||||
|
return nomJoueur1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNomJoueur1(TextField nomJoueur1) {
|
||||||
|
this.nomJoueur1 = nomJoueur1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TextField getNomJoueur2() {
|
||||||
|
return nomJoueur2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNomJoueur2(TextField nomJoueur2) {
|
||||||
|
this.nomJoueur2 = nomJoueur2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void playerNamesEntered() {
|
||||||
|
System.out.println("entered playNamesEntered()" + nomJoueur1.getText() + " VS " + nomJoueur2.getText());
|
||||||
|
|
||||||
|
MainScreenController MSC = new MainScreenController();
|
||||||
|
StackPane parentStackPane = MSC.getParentStackPane();
|
||||||
|
MSC.setParentStackPane(parentStackPane);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,11 @@ package latice.model;
|
||||||
|
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
import latice.model.console.Deck;
|
||||||
|
import latice.model.console.GameBoard;
|
||||||
|
import latice.model.console.Rack;
|
||||||
|
import latice.model.console.Score;
|
||||||
|
|
||||||
public class Player {
|
public class Player {
|
||||||
private final String name;
|
private final String name;
|
||||||
private Score score;
|
private Score score;
|
||||||
|
@ -9,17 +14,25 @@ public class Player {
|
||||||
private Deck deck;
|
private Deck deck;
|
||||||
|
|
||||||
public Player(String name, Score score, Deck deck, Rack rack) {
|
public Player(String name, Score score, Deck deck, Rack rack) {
|
||||||
//Demande le nom du joueur
|
this.name = name;
|
||||||
Scanner enterPlayerName = new Scanner(System.in);
|
|
||||||
System.out.println("Veuilez entrer votre nom " + name + " :");
|
|
||||||
String namePlayer = enterPlayerName.next();
|
|
||||||
|
|
||||||
this.name = namePlayer;
|
|
||||||
this.score = score;
|
this.score = score;
|
||||||
this.deck = deck;
|
this.deck = deck;
|
||||||
this.rack = rack;
|
this.rack = rack;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*public Player(Score score, Deck deck, Rack rack) {
|
||||||
|
this(namePlayer,score,deck,rack);
|
||||||
|
//Demande le nom du joueur
|
||||||
|
Scanner enterPlayerName = new Scanner(System.in);
|
||||||
|
System.out.println("Veuilez entrer votre nom :");
|
||||||
|
String namePlayer = enterPlayerName.next();
|
||||||
|
|
||||||
|
|
||||||
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return this.name;
|
return this.name;
|
||||||
}
|
}
|
||||||
|
@ -32,6 +45,10 @@ public class Player {
|
||||||
return this.score.getScore();
|
return this.score.getScore();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer getNumberOfTilesRemaining() {
|
||||||
|
return this.deck.getListTile().size() + this.rack.getListRackTile().size();
|
||||||
|
}
|
||||||
|
|
||||||
public Integer addScore(Integer value) {
|
public Integer addScore(Integer value) {
|
||||||
int newScore = this.score.getScore()+value;
|
int newScore = this.score.getScore()+value;
|
||||||
this.score.setScore(newScore);
|
this.score.setScore(newScore);
|
||||||
|
|
|
@ -3,6 +3,8 @@ package latice.model;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
import latice.model.console.GameBoard;
|
||||||
|
|
||||||
public class Rules {
|
public class Rules {
|
||||||
//private static boolean START = true;
|
//private static boolean START = true;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
package latice.model;
|
package latice.model.console;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import latice.model.Tile;
|
||||||
|
|
||||||
public class Deck {
|
public class Deck {
|
||||||
private ArrayList<Tile> deckTile = new ArrayList<Tile>();
|
private ArrayList<Tile> deckTile = new ArrayList<Tile>();
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package latice.model;
|
package latice.model.console;
|
||||||
|
|
||||||
public class GameBoard {
|
public class GameBoard {
|
||||||
private Integer DIMENSION = 9;
|
private Integer DIMENSION = 9;
|
|
@ -1,4 +1,4 @@
|
||||||
package latice.model;
|
package latice.model.console;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ import javafx.scene.image.Image;
|
||||||
import javafx.scene.image.ImageView;
|
import javafx.scene.image.ImageView;
|
||||||
import javafx.scene.layout.HBox;
|
import javafx.scene.layout.HBox;
|
||||||
import javafx.scene.text.Text;
|
import javafx.scene.text.Text;
|
||||||
|
import latice.model.Tile;
|
||||||
|
|
||||||
public class Rack {
|
public class Rack {
|
||||||
private ArrayList<Tile> listRackTile = new ArrayList<Tile>();
|
private ArrayList<Tile> listRackTile = new ArrayList<Tile>();
|
|
@ -1,4 +1,4 @@
|
||||||
package latice.model;
|
package latice.model.console;
|
||||||
|
|
||||||
public class Score {
|
public class Score {
|
||||||
private Integer score;
|
private Integer score;
|
|
@ -0,0 +1,263 @@
|
||||||
|
package latice.model.window;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import javafx.event.EventHandler;
|
||||||
|
import javafx.geometry.Insets;
|
||||||
|
import javafx.geometry.Pos;
|
||||||
|
import javafx.scene.control.Button;
|
||||||
|
import javafx.scene.control.Label;
|
||||||
|
import javafx.scene.image.Image;
|
||||||
|
import javafx.scene.image.ImageView;
|
||||||
|
import javafx.scene.input.ClipboardContent;
|
||||||
|
import javafx.scene.input.DragEvent;
|
||||||
|
import javafx.scene.input.Dragboard;
|
||||||
|
import javafx.scene.input.MouseEvent;
|
||||||
|
import javafx.scene.input.TransferMode;
|
||||||
|
import javafx.scene.layout.Background;
|
||||||
|
import javafx.scene.layout.BackgroundImage;
|
||||||
|
import javafx.scene.layout.BackgroundPosition;
|
||||||
|
import javafx.scene.layout.BackgroundRepeat;
|
||||||
|
import javafx.scene.layout.BackgroundSize;
|
||||||
|
import javafx.scene.layout.BorderPane;
|
||||||
|
import javafx.scene.layout.HBox;
|
||||||
|
import javafx.scene.layout.Pane;
|
||||||
|
import javafx.scene.layout.StackPane;
|
||||||
|
import javafx.scene.layout.VBox;
|
||||||
|
import javafx.scene.paint.ImagePattern;
|
||||||
|
import javafx.scene.shape.Rectangle;
|
||||||
|
import javafx.scene.text.Font;
|
||||||
|
import javafx.scene.text.FontWeight;
|
||||||
|
import javafx.scene.text.Text;
|
||||||
|
import javafx.stage.Stage;
|
||||||
|
import latice.model.Color;
|
||||||
|
import latice.model.Player;
|
||||||
|
import latice.model.Shape;
|
||||||
|
import latice.model.Tile;
|
||||||
|
import latice.model.console.Deck;
|
||||||
|
import latice.model.console.Rack;
|
||||||
|
|
||||||
|
public class PlayGame {
|
||||||
|
|
||||||
|
Image image = new Image("backgroundLatice.png");
|
||||||
|
ImageView imageView = new ImageView(image);
|
||||||
|
|
||||||
|
Tile blueBird = new Tile(Color.NAVYBLUE, Shape.BIRD);
|
||||||
|
Tile greenLeaf = new Tile(Color.GREEN, Shape.FEATHER);
|
||||||
|
Tile redFlower = new Tile(Color.RED, Shape.FLOWER);
|
||||||
|
|
||||||
|
ArrayList<Tile> listRackTile;
|
||||||
|
ArrayList<Image> listTileImage;
|
||||||
|
ArrayList<Tile> listOfTile = new ArrayList<Tile>();
|
||||||
|
Map<Rectangle, Tile> assocRectangleTile = new HashMap<Rectangle, Tile>();
|
||||||
|
static StackPane rootLayout;
|
||||||
|
private Label namePlayer1 = new Label("Anonyme");
|
||||||
|
private Label namePlayer2 = new Label("Anonyme");
|
||||||
|
|
||||||
|
public static int indexTileClicked;
|
||||||
|
|
||||||
|
|
||||||
|
//settings players
|
||||||
|
public Player player1;
|
||||||
|
public Player player2;
|
||||||
|
|
||||||
|
//root layout
|
||||||
|
BorderPane borderPane = new BorderPane();
|
||||||
|
|
||||||
|
//StackPane for background image + BorderPane root onto it
|
||||||
|
StackPane root = new StackPane();
|
||||||
|
|
||||||
|
static Stage primaryStageCopy;
|
||||||
|
|
||||||
|
int validateBtnClickedCount;
|
||||||
|
|
||||||
|
public Stage playGame(Stage StageToGame) {
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
//Title
|
||||||
|
Text title = new Text("Latice");
|
||||||
|
title.setFont(new Font(30));
|
||||||
|
borderPane.setTop(title);
|
||||||
|
borderPane.setAlignment(title, Pos.CENTER);
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
//Image
|
||||||
|
Pane pane = new Pane();
|
||||||
|
BackgroundImage myBG= new BackgroundImage(image,
|
||||||
|
BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.CENTER,
|
||||||
|
BackgroundSize.DEFAULT);
|
||||||
|
root.setBackground(new Background(myBG));
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
//###################### creating all rectangles and DragnDrop ######################//
|
||||||
|
RectangleFX rectFX = new RectangleFX();
|
||||||
|
rectFX.createRectangle(borderPane, pane);
|
||||||
|
rectFX.dragnDropOnAllRectangles(player1, indexTileClicked, validateBtnClickedCount);
|
||||||
|
rectFX.dragnDropOnAllRectangles(player2, indexTileClicked, validateBtnClickedCount);
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
borderPane.setCenter(pane);
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
//Rack
|
||||||
|
HBox rackBox = new HBox();
|
||||||
|
|
||||||
|
rackBox.setSpacing(10);
|
||||||
|
rackBox.setPadding(new Insets(15,20, 10,10));
|
||||||
|
|
||||||
|
|
||||||
|
//Creating tiles
|
||||||
|
for (Color color : Color.values()) {
|
||||||
|
for (Shape shape : Shape.values()) {
|
||||||
|
Tile tile = new Tile(color, shape);
|
||||||
|
|
||||||
|
listOfTile.add(tile);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("-----------------");
|
||||||
|
System.out.println("Notre Deck :");
|
||||||
|
Deck deck = new Deck(listOfTile);
|
||||||
|
System.out.println("-----------------");
|
||||||
|
Rack rack = new Rack(deck);
|
||||||
|
System.out.println("-----------------");
|
||||||
|
//deck.displayListTile();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//Confirm Button
|
||||||
|
Image checkMark = new Image("checkMark.png");
|
||||||
|
ImageView checkMarkView = new ImageView(checkMark);
|
||||||
|
Button confirmButton = new Button("Confirm", checkMarkView);
|
||||||
|
|
||||||
|
confirmButton.setOnMouseClicked(new EventHandler<MouseEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handle(MouseEvent arg0) {
|
||||||
|
|
||||||
|
validateBtnClickedCount++;
|
||||||
|
System.out.println("confirmed placement");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
//With Image
|
||||||
|
Rack rack2 = new Rack(deck);
|
||||||
|
HBox rackImage = rack2.createTileImage();
|
||||||
|
rackImage.getChildren().add(confirmButton);
|
||||||
|
rackImage.setMargin(rackImage.getChildren().get(4), new Insets(0,150,0,0));
|
||||||
|
borderPane.setBottom(rackImage);
|
||||||
|
|
||||||
|
//Adding lists to Arraylists
|
||||||
|
listRackTile = rack2.getListRackTile();
|
||||||
|
System.out.println(listRackTile);
|
||||||
|
listTileImage = rack2.getRackTileImage();
|
||||||
|
System.out.println("listTileImge : " + listTileImage);
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
//Setting OnDragDetected on tiles
|
||||||
|
setDragnDropOnRack(rackImage);
|
||||||
|
|
||||||
|
System.out.println((indexTileClicked));
|
||||||
|
ImagePattern imagePattern = new ImagePattern(listTileImage.get(indexTileClicked));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//rules / referee implementaion
|
||||||
|
|
||||||
|
this.transition(namePlayer1, namePlayer2);
|
||||||
|
//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("Anonyme", FontWeight.BOLD, 20));
|
||||||
|
name.setText("Anonyme");
|
||||||
|
|
||||||
|
Text score = new Text();
|
||||||
|
score.setText("Score : " + nameplayer.getScore());
|
||||||
|
|
||||||
|
Text nbrOfTiles = new Text();
|
||||||
|
nbrOfTiles.setText("Tuiles restantes : " + nameplayer.getNumberOfTilesRemaining());
|
||||||
|
|
||||||
|
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 : " + borderPane.getMaxWidth());
|
||||||
|
players.setSpacing(850);
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
setPrimaryStage(StageToGame);
|
||||||
|
setRootLayout(root);
|
||||||
|
root.getChildren().addAll(players, borderPane);
|
||||||
|
|
||||||
|
return StageToGame;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void transition(Label player1, Label player2) {
|
||||||
|
|
||||||
|
borderPane.setLeft(player1);
|
||||||
|
borderPane.setRight(player2);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPrimaryStage(Stage primaryStage) {
|
||||||
|
this.primaryStageCopy = primaryStage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setRootLayout(StackPane root) {
|
||||||
|
rootLayout = root;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setDragnDropOnRack(HBox rackImage) {
|
||||||
|
for (int i=0; i<5; i++) {
|
||||||
|
int index = i;
|
||||||
|
rackImage.getChildren().get(index).setOnDragDetected(new EventHandler<MouseEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handle(MouseEvent arg0) {
|
||||||
|
Dragboard dragboard = rackImage.getChildren().get(index).startDragAndDrop(TransferMode.ANY);
|
||||||
|
ClipboardContent content = new ClipboardContent();
|
||||||
|
dragboard.setDragView(listTileImage.get(index));
|
||||||
|
content.putString("Hello !");
|
||||||
|
indexTileClicked = index;
|
||||||
|
//setIndexTileClicked(index);
|
||||||
|
dragboard.setContent(content);
|
||||||
|
arg0.consume();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
rackImage.getChildren().get(index).setOnDragDone(new EventHandler<DragEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handle(DragEvent arg0) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,121 @@
|
||||||
|
package latice.model.window;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import javafx.event.EventHandler;
|
||||||
|
import javafx.scene.image.Image;
|
||||||
|
import javafx.scene.input.DragEvent;
|
||||||
|
import javafx.scene.input.Dragboard;
|
||||||
|
import javafx.scene.input.TransferMode;
|
||||||
|
import javafx.scene.layout.BorderPane;
|
||||||
|
import javafx.scene.layout.Pane;
|
||||||
|
import javafx.scene.paint.ImagePattern;
|
||||||
|
import javafx.scene.shape.Rectangle;
|
||||||
|
import latice.model.Constant;
|
||||||
|
import latice.model.Player;
|
||||||
|
import latice.model.Tile;
|
||||||
|
|
||||||
|
public class RectangleFX {
|
||||||
|
|
||||||
|
javafx.scene.paint.Color realColor = new javafx.scene.paint.Color(0, 0, 0, 0);
|
||||||
|
Rectangle[][] rect = new Rectangle[9][9];
|
||||||
|
ArrayList<Image> listTileImage;
|
||||||
|
Map<Rectangle, Tile> assocRectangleTile = new HashMap<Rectangle, Tile>();
|
||||||
|
|
||||||
|
public void createRectangle(BorderPane board, Pane pane) {
|
||||||
|
//Creating rectangle for tiles placement
|
||||||
|
|
||||||
|
int counterI = 0;
|
||||||
|
int counterJ = 0;
|
||||||
|
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++) {
|
||||||
|
|
||||||
|
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);
|
||||||
|
rect[counterI][counterJ].setFill(realColor.TRANSPARENT);
|
||||||
|
pane.getChildren().add(rect[counterI][counterJ]);
|
||||||
|
System.out.println(rect[counterI][counterJ]);
|
||||||
|
System.out.println(counterJ);
|
||||||
|
counterJ++;
|
||||||
|
}
|
||||||
|
System.out.println(counterI);
|
||||||
|
counterJ = 0;
|
||||||
|
counterI++;
|
||||||
|
}
|
||||||
|
|
||||||
|
board.setCenter(pane);
|
||||||
|
System.out.println(rect);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void dragnDropOnAllRectangles(Player player, Integer index, Integer validateBtnClicked) {
|
||||||
|
|
||||||
|
//Setting drag & drop on rectangles
|
||||||
|
for(int i=0; i<Constant.NUMBER_OF_BOX_ON_ONE_LINE; i++) {
|
||||||
|
for(int j=0; j<Constant.NUMBER_OF_BOX_ON_ONE_LINE; j++) {
|
||||||
|
int a = i;
|
||||||
|
int b = j;
|
||||||
|
|
||||||
|
rect[a][b].setOnDragEntered(new EventHandler<DragEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handle(DragEvent arg0) {
|
||||||
|
if (arg0.getDragboard().hasString()){
|
||||||
|
Dragboard dragboard = arg0.getDragboard();
|
||||||
|
|
||||||
|
rect[a][b].setFill(new ImagePattern(listTileImage.get(index)));
|
||||||
|
}
|
||||||
|
arg0.consume();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
rect[a][b].setOnDragExited(new EventHandler<DragEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handle(DragEvent arg0) {
|
||||||
|
if (arg0.isDropCompleted() == false) {
|
||||||
|
rect[a][b].setFill(realColor.TRANSPARENT);
|
||||||
|
}
|
||||||
|
arg0.consume();
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
rect[a][b].setOnDragOver(new EventHandler <DragEvent>() {
|
||||||
|
@Override
|
||||||
|
public void handle(DragEvent arg0) {
|
||||||
|
arg0.acceptTransferModes(TransferMode.ANY);
|
||||||
|
arg0.consume();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
rect[a][b].setOnDragDropped(new EventHandler<DragEvent>() {
|
||||||
|
@Override
|
||||||
|
public void handle(DragEvent arg0) {
|
||||||
|
System.out.println("entered");
|
||||||
|
Dragboard dragboard = arg0.getDragboard();
|
||||||
|
|
||||||
|
rect[a][b].setFill(new ImagePattern(listTileImage.get(index)));
|
||||||
|
arg0.setDropCompleted(true);
|
||||||
|
assocRectangleTile.put(rect[a][b], player.getRack().getListRackTile().get(index));
|
||||||
|
System.out.println(assocRectangleTile.toString());
|
||||||
|
if (validateBtnClicked == 0){
|
||||||
|
if (rect[a][b] == rect[4][4]) {
|
||||||
|
System.out.println("MOON valid placement");
|
||||||
|
}else {
|
||||||
|
System.out.println("Please place first Tile on MOON");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
arg0.consume();
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue