1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
| import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class ScrabbleMain extends Application{
private double largeurPlat = 800;
private double longueurPlat = 800;
private int ligne = 15;
private int colonne = 15;
double largeurCase = largeurPlat / ligne;
double longueurrCase = longueurPlat / colonne;
Case[][] playfield = new Case[ligne][colonne];
Jeton[][] chevaletJeton = new Jeton[7][1];
public static void main(String[] args) {
Application.launch(ScrabbleMain.class, args);
}
@Override
public void start(Stage primaryStage)
{
primaryStage.setTitle("Scrabble");
StackPane root = new StackPane();
Scene scenePrincipale = new Scene(root, 1200, 1000, Color.WHITE); //Création de la scéne
Group grille = new Group();
// initialize playfield
for( int i=0; i < ligne; i++) {
for( int j=0; j < colonne; j++) {
// create node
Case node = new Case(i, j, largeurCase, longueurrCase);
// add node to group
grille.getChildren().add(node);
// add to playfield for further reference using an array
playfield[i][j] = node;
}
}
grille.setTranslateX(-20);
grille.setTranslateY(-80);
root.getChildren().add(grille);
Group chevalet = new Group();
for( int i=0; i < 7; i++) {
// create node
Jeton node = new Jeton(i, 0, largeurCase, longueurrCase);
// add node to group
chevalet.getChildren().add(node);
// add to playfield for further reference using an array
chevaletJeton[i][0] = node;
}
chevalet.setTranslateX(-20);
chevalet.setTranslateY(400);
root.getChildren().add(chevalet);
primaryStage.setScene(scenePrincipale);
primaryStage.show();
}
public static class Case extends StackPane {
Rectangle rectangle = new Rectangle();
public Case(int x, int y, double largeur, double longueur) {
// create rectangle
Rectangle rectangle = new Rectangle( largeur, longueur);
rectangle.setStroke(Color.WHITE);
rectangle.setFill(Color.SEAGREEN);
// set position
setTranslateX(x * largeur);
setTranslateY(y * longueur);
getChildren().addAll(rectangle);
}
}
public static class Jeton extends StackPane {
Rectangle rectangle = new Rectangle();
public Jeton(int x, int y, double largeur, double longueur) {
// create rectangle
Rectangle rectangle = new Rectangle( largeur, longueur);
rectangle.setStroke(Color.WHITE);
rectangle.setFill(Color.SEAGREEN);
// set position
setTranslateX(x * largeur);
setTranslateY(y * longueur);
this.setOnMouseEntered(new EventHandler<MouseEvent>(){
public void handle(MouseEvent me){
rectangle.setFill(Color.LIGHTGREY);
}
});
this.setOnMouseExited(new EventHandler<MouseEvent>(){
public void handle(MouseEvent me){
rectangle.setFill(Color.SEAGREEN);
}
});
this.setOnMousePressed(new EventHandler<MouseEvent>(){
public void handle(MouseEvent me){
appuyer(x, y);
}
});
this.setOnMouseReleased(new EventHandler<MouseEvent>(){
public void handle(MouseEvent me){
relacher(y);
}
});
getChildren().addAll(rectangle);
}
public void appuyer(int positionX, int positionY){
rectangle.setFill(Color.DARKGREY);
System.out.println(positionX+"/"+positionY);
}
public void relacher(int positionY){
rectangle.setFill(Color.WHITE);
}
}
} |
Partager