Compare commits
65 Commits
a1e36ccbc7
...
MenuProtot
Author | SHA1 | Date | |
---|---|---|---|
56ed89d668 | |||
a273e7736a | |||
d5db1b14af | |||
ac368a6d19 | |||
37cc19f49a
|
|||
a6fc46a0ea
|
|||
78e50549d0 | |||
00f62097f1 | |||
d4f254139c | |||
fbbda476b4 | |||
70fef807d5 | |||
90f25b1c26 | |||
5bfb2aba9b | |||
a99a53868b | |||
592b179a19 | |||
eeae13b339 | |||
b41714c27f | |||
bb5e2ff401 | |||
895b20b680 | |||
7527309d79 | |||
5911d88918 | |||
49d2c5d7ab | |||
0a72e6e047 | |||
3b6234f4a1 | |||
dd01bc96cb | |||
e7d82b3076 | |||
bc2feee03c | |||
e4478c878c
|
|||
1ef428962f | |||
c585c54da2 | |||
df457b830a | |||
bd41d24a36 | |||
24df4e376c | |||
4854fef677
|
|||
71beb69c84
|
|||
1740ad2e13 | |||
04fd342a57 | |||
dfc6056767 | |||
1837d976aa | |||
f5bd36f4e0 | |||
716e874b7e | |||
3ab6ff1bfa | |||
f08ed98897 | |||
aafb5f5c66 | |||
bbfc5687d9 | |||
922497573b | |||
e55b17fcd8 | |||
08c4a08a01 | |||
207195c0c8 | |||
ec7692f8d3 | |||
5c4dc5c370 | |||
bc05260ba7 | |||
36c79daa4e | |||
5a45ab43ba | |||
c70e30b629 | |||
a55dcc678a | |||
d5b8da4f21 | |||
2ef6bdb9ed | |||
2d9a4d2aec | |||
acd786744b | |||
8d88f01c9d
|
|||
cc11b0d882 | |||
3b6c21f4b4 | |||
4608208b7f | |||
29b73a31b3 |
49
.drone.yml
Normal file
49
.drone.yml
Normal file
@ -0,0 +1,49 @@
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: Check_Requirement
|
||||
|
||||
steps:
|
||||
- name: base_check
|
||||
image: gradle:jdk11-alpine
|
||||
commands:
|
||||
- ./gradlew clean
|
||||
- ./gradlew build
|
||||
- ./gradlew test
|
||||
|
||||
- name: syntax_check
|
||||
image: gradle:jdk11-alpine
|
||||
commands:
|
||||
- ./gradlew check
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: master_build
|
||||
|
||||
steps:
|
||||
- name: make_archive
|
||||
image: alpine:latest
|
||||
volumes:
|
||||
- name: archives
|
||||
path: /build
|
||||
commands:
|
||||
- apk add --no-cache git
|
||||
- tar cvzf /build/$(git log -n 1 --format="%h")_school_archive.gz.tar app/ gradle/ gradlew/ gradlew.bat README.md settings.gradle
|
||||
when:
|
||||
branch:
|
||||
- master
|
||||
event:
|
||||
exclude:
|
||||
- pull_request
|
||||
volumes:
|
||||
- name: archives
|
||||
host:
|
||||
path: /srv/drone/school_project/archive/
|
||||
depends_on:
|
||||
- Check_Requirement
|
||||
---
|
||||
kind: signature
|
||||
hmac: 9ca9095fdb69d7b89fda6b4db867877e76666c109607cc7b1e513814ad42bb7e
|
||||
|
||||
...
|
@ -3,4 +3,9 @@
|
||||
# Rapports
|
||||
|
||||
- [Première entrevue](./rapports/130223.md)
|
||||
- [Deuxième entrevue](./rapports/200223.md)
|
||||
- [Deuxième entrevue](./rapports/200223.md)
|
||||
- [Troisième entrevue](./rapports/230323.md)
|
||||
|
||||
# Histoire
|
||||
|
||||
- [Plot Story](./histoire/plot_story.md)
|
69
JournalDeBord/src/histoire/plot_story.md
Normal file
69
JournalDeBord/src/histoire/plot_story.md
Normal file
@ -0,0 +1,69 @@
|
||||
|
||||
# Intro histoire
|
||||
|
||||
|
||||
Après notre premier quadri à l unif assez compliqué entre calculus, inégalités et physique
|
||||
et la perte de temps dans les transports en commun.
|
||||
Je décide de enfin me prendre un kot à Mons pour réussir ce quadri en beauté
|
||||
|
||||
# Day 1
|
||||
## intro à jouer
|
||||
|
||||
Faire les cartons de différentes cours
|
||||
Calculus --> big carton( encombrant pas possible de tourner)
|
||||
Algo 1 --> pc portable (fragile)
|
||||
Math elem carton avec une inégalité dessus qui change dès qu on tourne la pièce)
|
||||
Objet perso à chacun
|
||||
1. Mat --> poids de sport
|
||||
2. Eddy --> balle de basket,...
|
||||
3. Anthony --> tenue de scout
|
||||
|
||||
## Déménagement histoire :
|
||||
|
||||
Arrivé à l appartement :
|
||||
La pièce est assez petite mais avec assez d'imagination je serai tout mettre
|
||||
(j'aurais aimé déjà être en master pour faire une AI qui me aiderai à ranger tous
|
||||
ça peut-etre que chatgpt pourrait m aider..)
|
||||
|
||||
## Déménagement à jouer :
|
||||
|
||||
Galère à tout rangé --> (interaction avec le jouer)
|
||||
--> en repensant c est peut-être pour ça que l ancien propriétaire et partie et que le prix était de si bas
|
||||
Notion de jour donc cours unifs -> pas le temps de ranger dans le WK on doit terminer en semaine
|
||||
|
||||
# Day 2
|
||||
|
||||
## continuité histoire
|
||||
|
||||
Après un long mardi terminer par le cours d algo 2 il est
|
||||
tant de ranger le dernier carton dans la buanderie après une 10 minute de marche
|
||||
j arrive à mon kot mais qlq chose à changer, la couleur de la porte n est plus la même.
|
||||
De plus il faut tirer et plus poussé pour l ouvrir.
|
||||
Après être rentré tous les cartons sont refait et l ordre des pièces à changer
|
||||
|
||||
## à jouer
|
||||
|
||||
----> refaire des niveaux différents pour ranger les cartons
|
||||
|
||||
(intercation pendant le jeu)
|
||||
--> Hormis la fatigue qui me gagne et se sentiment étrange par rapport à ce kot
|
||||
je defais encore une fois tous mes cartons
|
||||
(je ne sais pas comment mais tout mes exo en calculus ont été corrigées les cartons sont tous remplie de rouge) Après avoir défait le dernier carton dans le bureau je remarque une Trap mystérieuse mais il est déjà 23h et demain j'ai une longue journée qui m'attend (8-10 et 15h45-17h45)
|
||||
|
||||
# Day 3 histoire
|
||||
La nuit passe --> rien ne bouge
|
||||
(Level bonus)
|
||||
(choix entre faire le petit dej ou allez directement en cours)
|
||||
|
||||
## Si choix petit dej
|
||||
|
||||
Après un bon petit déj --> puzzle cassé les oeuf au bonne endroit dans la poêle
|
||||
mettre le bacon au bonne endroit
|
||||
|
||||
## si choix rien déjeuner
|
||||
rien ne se passer (peut avoir de l'importance pour la suite ex : fin pendant la journée donc allez faire des courses idée de niveau de remplir le caddie)
|
||||
|
||||
|
||||
La journée se termine je croise les doigts pour que tout reste comme avant
|
||||
Puis on ouvre la Trap est... space cat avec qlq level
|
||||
ou reveil devant l examen de calculus
|
34
JournalDeBord/src/rapports/230323.md
Normal file
34
JournalDeBord/src/rapports/230323.md
Normal file
@ -0,0 +1,34 @@
|
||||
# 23 mars 2023
|
||||
|
||||
Nous nous sommes rassemblés ce jeudi afin de parler de plusieurs sujets tel que :
|
||||
|
||||
1. L'avancement du travail d'Eddy.
|
||||
2. Clarifiction sur les tâches.
|
||||
3. Rassembler notre travail.
|
||||
|
||||
## L'avancement du travail d'Eddy
|
||||
|
||||
Eddy a commencé à travailler avec javaFX afin de modéliser les premiers mouvements/ déplacement sur les pièces dont nous aurons besoins pour la suite du projet. Il va rajouter son travail sur notre git.
|
||||
|
||||
## Clarifiction sur les tâches du projet
|
||||
|
||||
En ceux qui concerne Eddy va continuer de :
|
||||
- Travailler sur les mouvements des pièces
|
||||
- Faire l'interface graphique pour le jeu.
|
||||
|
||||
Anthony va :
|
||||
- Continuer à travailler sur Map
|
||||
- Travailler sur son Parser
|
||||
|
||||
Pour finir Matteo va :
|
||||
- S'occuper de faire le menu du jeu
|
||||
- Faire la musique du jeu
|
||||
|
||||
## Rassembler notre travail
|
||||
|
||||
Après la mise en commun du travaille d'Eddy avec celle d'Anthony deux points important ont été souligné.
|
||||
|
||||
En effet désormais Anthony se consacre sur toutes les propriétés des pièces à l'intérieur du plateau de jeu, tandis que Eddy lui fait en sorte de lier son travail pour les mouvements en dehors du plateau c'est-à-dire la sélection des pièces, la sélections de la texture en bref l'interface graphique.
|
||||
De plus concernant la position des pièces il a été décidé de se référer au coin en haut à gauche de la matrice une méthode qui pourra nous aider est la méthode Vec2 qui Anthony a rajouté
|
||||
|
||||
En ce qui concerne la création du menu pour Matteo, il faudrait créer une classe select level pour que chaque level contiennent : le parser qui est relié à Shape et à Pièce mais aussi à l'interface graphique.
|
@ -1,3 +1,5 @@
|
||||
# School_Project
|
||||
|
||||
[](http://drone.herisson.ovh/undefined_name/School_Project)
|
||||
|
||||
School Project based on Cats Organized Neatly
|
@ -1,32 +1,222 @@
|
||||
/*
|
||||
* This Java source file was generated by the Gradle 'init' task.
|
||||
*/
|
||||
package school_project;
|
||||
|
||||
package school_project;
|
||||
import javafx.application.Application;
|
||||
import javafx.scene.Node;
|
||||
import javafx.event.EventHandler;
|
||||
import javafx.scene.Group;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.Cursor;
|
||||
import javafx.scene.input.KeyEvent;
|
||||
import javafx.scene.input.MouseEvent;
|
||||
import javafx.scene.paint.Color;
|
||||
import javafx.scene.shape.Polygon;
|
||||
import javafx.scene.transform.Rotate;
|
||||
import javafx.animation.RotateTransition;
|
||||
import javafx.stage.Stage;
|
||||
import javafx.util.Duration;
|
||||
public class Controller extends Application{
|
||||
|
||||
double x;
|
||||
double y;
|
||||
|
||||
|
||||
public void start(Stage primaryStage) throws Exception {
|
||||
|
||||
Polygon piece1 = new Polygon();
|
||||
Polygon piece2 = new Polygon();
|
||||
Polygon piece3 = new Polygon();
|
||||
Polygon piece4 = new Polygon();
|
||||
Polygon piece5 = new Polygon();
|
||||
Polygon piece6 = new Polygon();
|
||||
Polygon piece7 = new Polygon();
|
||||
|
||||
public class Controller extends Application {
|
||||
|
||||
|
||||
piece1.getPoints().addAll(new Double [] {
|
||||
0.0,0.0,
|
||||
200.0,0.0,
|
||||
200.0,200.0,
|
||||
100.0,200.0,
|
||||
100.0,100.0,
|
||||
0.0,100.0});
|
||||
|
||||
piece2.getPoints().addAll(new Double [] {
|
||||
100.0,0.0,
|
||||
200.0,0.0,
|
||||
200.0,300.0,
|
||||
100.0,300.0,
|
||||
});
|
||||
|
||||
piece3.getPoints().addAll(new Double [] {
|
||||
0.0,0.0,
|
||||
200.0,0.0,
|
||||
200.0,200.0,
|
||||
0.0,200.0,
|
||||
});
|
||||
|
||||
piece4.getPoints().addAll(new Double [] {
|
||||
0.0,0.0,
|
||||
200.0,0.0,
|
||||
200.0,300.0,
|
||||
0.0,300.0,
|
||||
|
||||
});
|
||||
|
||||
piece5.getPoints().addAll(new Double [] {
|
||||
0.0,0.0,
|
||||
100.0,0.0,
|
||||
100.0,100.0,
|
||||
0.0,100.0,
|
||||
});
|
||||
|
||||
piece6.getPoints().addAll(new Double [] {
|
||||
0.0,0.0,
|
||||
200.0,0.0,
|
||||
200.0,300.0,
|
||||
100.0,300.0,
|
||||
100.0,100.0,
|
||||
0.0,100.0});
|
||||
|
||||
piece7.getPoints().addAll(new Double [] {
|
||||
100.0,0.0,
|
||||
200.0,0.0,
|
||||
200.0,200.0,
|
||||
100.0,200.0,
|
||||
});
|
||||
|
||||
/*for(int i ; i<tab.lenght ; i++ ) {
|
||||
for (int j , i<tab.widnth , j++) {
|
||||
|
||||
if (tab[0][0]==TRUE;) {
|
||||
if(tab[
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
Group root = new Group();
|
||||
root.getChildren().addAll(piece2,piece1,piece3,piece4,piece5,piece6,piece7/*,....,pieceN*/);
|
||||
Scene scene = new Scene(root,690,650,Color.WHEAT);
|
||||
root.getChildren().forEach(n -> makeDraggable((Polygon) n));
|
||||
root.getChildren().forEach(n -> rotation((Polygon) n, scene));
|
||||
primaryStage.setScene(scene);
|
||||
primaryStage.setTitle("piece 1");
|
||||
|
||||
primaryStage.show();
|
||||
|
||||
|
||||
|
||||
piece1.setFill(Color.LIMEGREEN);
|
||||
piece1.setStroke(Color.BLACK);
|
||||
piece1.setStrokeWidth(3);
|
||||
|
||||
piece2.setFill(Color.LIMEGREEN);
|
||||
piece2.setStroke(Color.BLACK);
|
||||
piece2.setStrokeWidth(3);
|
||||
|
||||
piece3.setFill(Color.LIMEGREEN);
|
||||
piece3.setStroke(Color.BLACK);
|
||||
piece3.setStrokeWidth(3);
|
||||
|
||||
piece4.setFill(Color.LIMEGREEN);
|
||||
piece4.setStroke(Color.BLACK);
|
||||
piece4.setStrokeWidth(3);
|
||||
|
||||
piece5.setFill(Color.LIMEGREEN);
|
||||
piece5.setStroke(Color.BLACK);
|
||||
piece5.setStrokeWidth(3);
|
||||
|
||||
piece6.setFill(Color.LIMEGREEN);
|
||||
piece6.setStroke(Color.BLACK);
|
||||
piece6.setStrokeWidth(3);
|
||||
|
||||
piece7.setFill(Color.LIMEGREEN);
|
||||
piece7.setStroke(Color.BLACK);
|
||||
piece7.setStrokeWidth(3);
|
||||
|
||||
|
||||
}
|
||||
//double click delayed bug to fix
|
||||
//ftm just the last piece implemented can be rotated
|
||||
public static void rotaterght (Node node) {
|
||||
RotateTransition rotaterght = new RotateTransition();
|
||||
//setting attributes for the RotateTransition
|
||||
rotaterght.setByAngle(90);
|
||||
rotaterght.autoReverseProperty();
|
||||
rotaterght.setDuration(Duration.millis(1000));
|
||||
rotaterght.setNode(node);
|
||||
rotaterght.setAxis(Rotate.Z_AXIS);
|
||||
rotaterght.play();}
|
||||
|
||||
public static void rotatelft (Node node) {
|
||||
|
||||
RotateTransition rotatelft = new RotateTransition();
|
||||
|
||||
rotatelft.setByAngle(-90);// minus to rotate to the left
|
||||
rotatelft.autoReverseProperty();
|
||||
rotatelft.setDuration(Duration.millis(1000));
|
||||
rotatelft.setNode(node);
|
||||
rotatelft.setAxis(Rotate.Z_AXIS);
|
||||
rotatelft.play();}
|
||||
|
||||
public void rotation (Polygon node, Scene scene) {
|
||||
scene.setOnKeyPressed(new EventHandler<KeyEvent>() {
|
||||
public void handle(KeyEvent event) {// 'event' means corresponds to clicking on the clipboard
|
||||
switch (event.getCode()) {// 'getCode' gets the code of the key pressed on the clipboard
|
||||
case RIGHT: rotaterght(node); break;
|
||||
//args to set
|
||||
case LEFT: rotatelft(node); break;
|
||||
default: System.out.println("this case hasn't been taken in charge yet");
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void start(Stage primaryStage) throws Exception {
|
||||
primaryStage.setTitle("test");
|
||||
Button btn = new Button("test");
|
||||
btn.setOnAction(event -> System.out.println("hey"));
|
||||
public void makeDraggable(Polygon node) {
|
||||
node.setOnMousePressed(new EventHandler<MouseEvent>() {
|
||||
@Override public void handle(MouseEvent mouseEvent) {
|
||||
// record a (x,y) distance for the drag and drop operation.
|
||||
x = node.getLayoutX() - mouseEvent.getSceneX();
|
||||
y = node.getLayoutY() - mouseEvent.getSceneY();
|
||||
node.requestFocus();
|
||||
node.setFocusTraversable(true);
|
||||
node.focusedProperty();
|
||||
node.focusVisibleProperty();
|
||||
/*node.setFocused(true);*/
|
||||
node.setCursor(Cursor.CLOSED_HAND);
|
||||
node.setFill(Color.AZURE);
|
||||
}
|
||||
});
|
||||
|
||||
node.setOnMouseReleased(new EventHandler<MouseEvent>() {
|
||||
@Override public void handle(MouseEvent mouseEvent) {
|
||||
node.setCursor(Cursor.HAND);
|
||||
node.setFill(Color.LIMEGREEN);
|
||||
}
|
||||
});
|
||||
|
||||
node.setOnMouseDragged(new EventHandler<MouseEvent>() {
|
||||
@Override public void handle(MouseEvent mouseEvent) {
|
||||
node.setLayoutX(mouseEvent.getSceneX() + x);
|
||||
node.setLayoutY(mouseEvent.getSceneY() + y);
|
||||
}
|
||||
});
|
||||
|
||||
node.setOnMouseEntered(new EventHandler<MouseEvent>() {
|
||||
@Override public void handle(MouseEvent mouseEvent) {
|
||||
node.setCursor(Cursor.HAND);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
Group root = new Group();
|
||||
root.getChildren().add(btn);
|
||||
|
||||
Scene scene = new Scene(root, 300,300);
|
||||
primaryStage.setScene(scene);
|
||||
|
||||
primaryStage.show();
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
launch();
|
||||
|
||||
public static void main(String[] args) {
|
||||
launch(args);
|
||||
}
|
||||
}
|
||||
|
@ -1,20 +1,46 @@
|
||||
package school_project;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* Represent the map with its pieces.
|
||||
* Every piece has a position element that represent its position on the map
|
||||
*/
|
||||
public class Map extends Shape{
|
||||
private ArrayList<Piece> pieces;
|
||||
private final ArrayList<Piece> pieces = new ArrayList<>();
|
||||
|
||||
public Map(boolean[][] matrix) {
|
||||
super(matrix);
|
||||
}
|
||||
|
||||
public Map() {
|
||||
super();
|
||||
}
|
||||
|
||||
// TODO: 2/27/23 Tests for Map
|
||||
public void AddShape(Piece piece){
|
||||
public void addPiece(Piece piece){
|
||||
piece.setLinked_map(this);
|
||||
pieces.add(piece);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a matrix with all used space on the map to see if a piece can fit in a space
|
||||
*
|
||||
* @return matrix of boolean with false being the not used space
|
||||
*/
|
||||
public boolean[][] getUsedSpace(){
|
||||
|
||||
// Copy of the map to avoid side effect
|
||||
boolean[][] used = new boolean[height][width];
|
||||
for (int i = 0; i < height; i++) {
|
||||
used[i] = Arrays.copyOf(matrix[i], width);
|
||||
}
|
||||
|
||||
for (Piece p : pieces) {
|
||||
for(int x = 0; x < p.height; x++){
|
||||
for(int y = 0; y < p.width; y++){
|
||||
if (p.getShape()[x][y]){
|
||||
used[p.getPosition().x + x][p.getPosition().y + y] = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return used;
|
||||
}
|
||||
}
|
||||
|
@ -1,44 +0,0 @@
|
||||
package school_project;
|
||||
|
||||
import java.io.*;
|
||||
import java.lang.reflect.Array;
|
||||
import java.util.Arrays;
|
||||
|
||||
public class MapParser {
|
||||
public static Map ParseMapFile(File file) throws IllegalArgumentException, IllegalAccessException, IOException {
|
||||
System.out.println(file.getAbsolutePath());
|
||||
FileInputStream fileStream = new FileInputStream(file);
|
||||
if(!file.isFile()) throw new IllegalArgumentException("The argument should be a file");
|
||||
if(!file.canRead()) throw new IllegalAccessException("This file can't be read");
|
||||
|
||||
byte[] bytes = fileStream.readAllBytes();
|
||||
int start_position = 0, end_position = 0;
|
||||
for (int i = 0; i < bytes.length; i++) {
|
||||
if(bytes[i] == 83 && bytes[i+1] == 77 && bytes[i+2] == 83){ // SMS
|
||||
start_position = i+3;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = start_position; i < bytes.length; i++) {
|
||||
if(bytes[i] == 83 && bytes[i+1] == 77 && bytes[i+2] == 69){ // SME
|
||||
end_position = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
byte[] map_data = Arrays.copyOfRange(bytes, start_position, end_position); //TODO tonitch cursor
|
||||
|
||||
|
||||
fileStream.close();
|
||||
return new Map(); //TODO: Send the parsed map
|
||||
}
|
||||
|
||||
// public static void SaveMapFile(File file){
|
||||
// }
|
||||
|
||||
public static void main(String[] args) throws IOException, IllegalAccessException {
|
||||
ParseMapFile(new File("test.smap"));
|
||||
}
|
||||
|
||||
}
|
24
app/src/main/java/school_project/Menu.java
Normal file
24
app/src/main/java/school_project/Menu.java
Normal file
@ -0,0 +1,24 @@
|
||||
package school_project;
|
||||
|
||||
import javafx.application.Application;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.layout.BorderPane;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
public class Menu extends Application {
|
||||
|
||||
public static void main(String[] args) {
|
||||
launch(args);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start(Stage primaryStage) {
|
||||
//set up the page
|
||||
BorderPane root = new BorderPane();
|
||||
Scene scene = new Scene(root,300,200);
|
||||
primaryStage.setScene(scene);
|
||||
primaryStage.show();
|
||||
|
||||
|
||||
}
|
||||
}
|
@ -1,8 +1,16 @@
|
||||
package school_project;
|
||||
|
||||
/**
|
||||
* Represent a Piece in the game.
|
||||
* Every Piece should be contained in a Map Object.
|
||||
* A piece has a position witch is the position of its top-leftest position in its matrix.
|
||||
* If the piece is not placed in the Map (in a floating state) the position should be null;
|
||||
*/
|
||||
public class Piece extends Shape{
|
||||
|
||||
private int x,y; // Position in the Map Object
|
||||
private Vec2 Position;
|
||||
private Map linked_map;
|
||||
|
||||
public Piece() {
|
||||
super();
|
||||
}
|
||||
@ -11,6 +19,26 @@ public class Piece extends Shape{
|
||||
super(matrix);
|
||||
}
|
||||
|
||||
public Vec2 getPosition() {
|
||||
return Position;
|
||||
}
|
||||
|
||||
public void setPosition(Vec2 position){
|
||||
if (linked_map == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.Position = position;
|
||||
}
|
||||
|
||||
/**
|
||||
* set the map the piece is into the the map argument
|
||||
* @param map map where to place the piece
|
||||
*/
|
||||
public void setLinked_map(Map map){
|
||||
this.linked_map = map;
|
||||
}
|
||||
|
||||
/**
|
||||
* Rotate the matrix of the piece. Used when the player right click
|
||||
*
|
||||
|
@ -1,6 +1,10 @@
|
||||
package school_project;
|
||||
|
||||
|
||||
/**
|
||||
* Base class for everything that is a shape kind, like map and pieces
|
||||
* it contain a matrix of boolean where the shape is defined by the true's
|
||||
*/
|
||||
public class Shape {
|
||||
|
||||
protected boolean[][] matrix;
|
||||
|
19
app/src/main/java/school_project/Vec2.java
Normal file
19
app/src/main/java/school_project/Vec2.java
Normal file
@ -0,0 +1,19 @@
|
||||
package school_project;
|
||||
|
||||
/**
|
||||
* This is used to represent a position/vector/... any ensemble of 2 elements that have to work together in
|
||||
* a plan. This way we can use some basic operations over them.
|
||||
*/
|
||||
public class Vec2 {
|
||||
public int x, y;
|
||||
|
||||
public Vec2() {
|
||||
x = 0;
|
||||
y = 0;
|
||||
}
|
||||
|
||||
public Vec2(int x, int y ){
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
}
|
35
app/src/test/java/school_project/MapTest.java
Normal file
35
app/src/test/java/school_project/MapTest.java
Normal file
@ -0,0 +1,35 @@
|
||||
package school_project;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
class MapTest {
|
||||
|
||||
@Test
|
||||
void getUsedSpace() {
|
||||
boolean[][] map_matrix = {
|
||||
{false, true, true, false},
|
||||
{false, true, true, true},
|
||||
{true, true, true, false},
|
||||
{false, true, true, true}
|
||||
};
|
||||
Map testMap = new Map(map_matrix);
|
||||
|
||||
boolean[][] piece1_matrix = {
|
||||
{true, true},
|
||||
{true, true},
|
||||
};
|
||||
Piece piece1 = new Piece(piece1_matrix);
|
||||
testMap.addPiece(piece1);
|
||||
piece1.setPosition(new Vec2(0,1));
|
||||
|
||||
boolean[][] result_matrix = {
|
||||
{false, false, false, false},
|
||||
{false, false, false, true},
|
||||
{true, true, true, false},
|
||||
{false, true, true, true}
|
||||
};
|
||||
assertArrayEquals(result_matrix, testMap.getUsedSpace());
|
||||
}
|
||||
}
|
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
Binary file not shown.
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,6 +1,6 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
|
||||
networkTimeout=10000
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
4
gradlew
vendored
4
gradlew
vendored
@ -144,7 +144,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
case $MAX_FD in #(
|
||||
max*)
|
||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC3045
|
||||
# shellcheck disable=SC3045
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
@ -152,7 +152,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
'' | soft) :;; #(
|
||||
*)
|
||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC3045
|
||||
# shellcheck disable=SC3045
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
|
82
misc/pre-commit.sh
Executable file
82
misc/pre-commit.sh
Executable file
@ -0,0 +1,82 @@
|
||||
#!/bin/sh
|
||||
|
||||
echo 'Lovely Idea';
|
||||
|
||||
BASE_DIR="$(dirname $(readlink -f $0))/.."
|
||||
cd $BASE_DIR
|
||||
echo $BASE_DIR
|
||||
|
||||
function clean() {
|
||||
echo "Cleaning the folder"
|
||||
$BASE_DIR/gradlew clean
|
||||
|
||||
}
|
||||
|
||||
function build() {
|
||||
echo "Building the project"
|
||||
$BASE_DIR/gradlew build
|
||||
|
||||
}
|
||||
|
||||
function test() {
|
||||
echo "Testing the project"
|
||||
$BASE_DIR/gradlew test
|
||||
|
||||
}
|
||||
|
||||
function run() {
|
||||
echo "Running the project"
|
||||
$BASE_DIR/gradlew run &
|
||||
_PID=$!
|
||||
sleep 3
|
||||
killpid $_PID
|
||||
}
|
||||
|
||||
function check_syntax() {
|
||||
echo "Checking the syntax"
|
||||
echo 'TODO Tonitch: check syntax script'
|
||||
|
||||
}
|
||||
|
||||
function make_archive() {
|
||||
echo "Creating the archive on the parent folder"
|
||||
tar --create --gzip --exclude-vcs --exclude-vcs-ignores -f ../archive.tar.gz "${BASE_DIR}/{app/, gradle/, gralew, gradlew.bat, settings.gradle}"
|
||||
}
|
||||
|
||||
case $1 in
|
||||
|
||||
clean )
|
||||
clean ;;
|
||||
|
||||
build )
|
||||
build ;;
|
||||
|
||||
test )
|
||||
test ;;
|
||||
|
||||
run )
|
||||
run ;;
|
||||
|
||||
syntax )
|
||||
check_syntax ;;
|
||||
|
||||
archive )
|
||||
clean &&
|
||||
build &&
|
||||
test &&
|
||||
run &&
|
||||
check_syntax &&
|
||||
make_archive ;;
|
||||
|
||||
all )
|
||||
clean &&
|
||||
build &&
|
||||
test &&
|
||||
run &&
|
||||
check_syntax ;;
|
||||
* )
|
||||
clean &&
|
||||
build &&
|
||||
test &&
|
||||
check_syntax ;;
|
||||
esac
|
77
prototypes/cat_puzzle.py
Normal file
77
prototypes/cat_puzzle.py
Normal file
@ -0,0 +1,77 @@
|
||||
import os
|
||||
import rotate_matrix
|
||||
def turn_piece(piece): #based on a matrix MxN ie [(0,0),(0,0),(0,0)] m = 3 and n = 2
|
||||
new_piece = rotate_matrix.clockwise(piece)
|
||||
return new_piece
|
||||
|
||||
game = True
|
||||
while game:
|
||||
print('Bienvenue dans le jeu cat puzzle')
|
||||
|
||||
choose_level = 0
|
||||
while choose_level == 0:
|
||||
choose_level = input('Choissisez un niveau à résoudre\n') #choose a level of the game
|
||||
try:
|
||||
choose_level = int(choose_level)
|
||||
except ValueError:
|
||||
choose_level= 0
|
||||
print('Il me faut un nombre')
|
||||
if choose_level!=1:
|
||||
choose_level = 0
|
||||
print('Il n\'existe que le niveau 1 pour l\'instant')
|
||||
|
||||
print('Découvrons ensemeble le niveau',choose_level) #make a first level
|
||||
|
||||
if choose_level ==1: #select the level one and print it
|
||||
level_one = [(1,1,1),(1,1,0),(1,1,1)]
|
||||
print(level_one[0])
|
||||
print(level_one[1])
|
||||
print(level_one[2])
|
||||
|
||||
|
||||
print('Voilà les pièces que vous disposez pour complèter le puzzle') #make piece for resolve the puzzle
|
||||
|
||||
piece_for_level = {
|
||||
1:[(1,1),(1,0)],2:[(1,0),(1,0),(1,0)],3:[(1,1)]}
|
||||
|
||||
|
||||
print('Voilà la pièce 1:') #show the piece at the player
|
||||
for i in piece_for_level[1]:
|
||||
print(i)
|
||||
|
||||
print('Voilà la pièce 2:')
|
||||
for i in piece_for_level[2]:
|
||||
print(i)
|
||||
|
||||
print('Voilà la pièce 3:')
|
||||
for i in piece_for_level[3]:
|
||||
print(i)
|
||||
|
||||
choose_piece = 0
|
||||
while choose_piece ==0:
|
||||
choose_piece = input('Choissisez la pièce que vous voulez bouger ? ') #choice of the piece to move
|
||||
try:
|
||||
choose_piece = int(choose_piece)
|
||||
except ValueError:
|
||||
choose_piece =0
|
||||
print('J\'ai besoin d\'un nombre')
|
||||
|
||||
|
||||
|
||||
move_piece = input('Voulez vous tournez la pièce ? (o/n)\n')
|
||||
if move_piece== 'o':
|
||||
print('Voilà la pièce tourner')
|
||||
piece_turn = turn_piece(piece_for_level[choose_piece])
|
||||
for i in piece_turn:
|
||||
print(i)
|
||||
|
||||
m = input('A quelle ligne voulez-vous mettre la pièce ? ')
|
||||
n = input("A quelle colonne voulez-vous mettre la pièce ? ")
|
||||
m,n=m-1,n-1
|
||||
|
||||
|
||||
|
||||
game=False
|
||||
|
||||
|
||||
os.system('pause')
|
42
prototypes/demo/.gitignore
vendored
Normal file
42
prototypes/demo/.gitignore
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
.gradle
|
||||
build/
|
||||
!gradle/wrapper/gradle-wrapper.jar
|
||||
!**/src/main/**/build/
|
||||
!**/src/test/**/build/
|
||||
|
||||
### IntelliJ IDEA ###
|
||||
.idea/modules.xml
|
||||
.idea/jarRepositories.xml
|
||||
.idea/compiler.xml
|
||||
.idea/libraries/
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
out/
|
||||
!**/src/main/**/out/
|
||||
!**/src/test/**/out/
|
||||
|
||||
### Eclipse ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
.sts4-cache
|
||||
bin/
|
||||
!**/src/main/**/bin/
|
||||
!**/src/test/**/bin/
|
||||
|
||||
### NetBeans ###
|
||||
/nbproject/private/
|
||||
/nbbuild/
|
||||
/dist/
|
||||
/nbdist/
|
||||
/.nb-gradle/
|
||||
|
||||
### VS Code ###
|
||||
.vscode/
|
||||
|
||||
### Mac OS ###
|
||||
.DS_Store
|
57
prototypes/demo/build.gradle
Normal file
57
prototypes/demo/build.gradle
Normal file
@ -0,0 +1,57 @@
|
||||
plugins {
|
||||
id 'java'
|
||||
id 'application'
|
||||
id 'org.javamodularity.moduleplugin' version '1.8.12'
|
||||
id 'org.openjfx.javafxplugin' version '0.0.13'
|
||||
id 'org.beryx.jlink' version '2.25.0'
|
||||
}
|
||||
|
||||
group 'com.example'
|
||||
version '1.0-SNAPSHOT'
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
ext {
|
||||
junitVersion = '5.9.1'
|
||||
}
|
||||
|
||||
sourceCompatibility = '17'
|
||||
targetCompatibility = '17'
|
||||
|
||||
tasks.withType(JavaCompile) {
|
||||
options.encoding = 'UTF-8'
|
||||
}
|
||||
|
||||
application {
|
||||
mainModule = 'com.example.demo'
|
||||
mainClass = 'com.example.demo.HelloApplication'
|
||||
}
|
||||
|
||||
javafx {
|
||||
version = '17.0.2'
|
||||
modules = ['javafx.controls', 'javafx.fxml']
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
testImplementation("org.junit.jupiter:junit-jupiter-api:${junitVersion}")
|
||||
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:${junitVersion}")
|
||||
}
|
||||
|
||||
test {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
|
||||
jlink {
|
||||
imageZip = project.file("${buildDir}/distributions/app-${javafx.platform.classifier}.zip")
|
||||
options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
|
||||
launcher {
|
||||
name = 'app'
|
||||
}
|
||||
}
|
||||
|
||||
jlinkZip {
|
||||
group = 'distribution'
|
||||
}
|
BIN
prototypes/demo/gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
BIN
prototypes/demo/gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
Binary file not shown.
5
prototypes/demo/gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
5
prototypes/demo/gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
234
prototypes/demo/gradlew
vendored
Normal file
234
prototypes/demo/gradlew
vendored
Normal file
@ -0,0 +1,234 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# Copyright © 2015-2021 the original authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
# Gradle start up script for POSIX generated by Gradle.
|
||||
#
|
||||
# Important for running:
|
||||
#
|
||||
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
|
||||
# noncompliant, but you have some other compliant shell such as ksh or
|
||||
# bash, then to run this script, type that shell name before the whole
|
||||
# command line, like:
|
||||
#
|
||||
# ksh Gradle
|
||||
#
|
||||
# Busybox and similar reduced shells will NOT work, because this script
|
||||
# requires all of these POSIX shell features:
|
||||
# * functions;
|
||||
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
|
||||
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
|
||||
# * compound commands having a testable exit status, especially «case»;
|
||||
# * various built-in commands including «command», «set», and «ulimit».
|
||||
#
|
||||
# Important for patching:
|
||||
#
|
||||
# (2) This script targets any POSIX shell, so it avoids extensions provided
|
||||
# by Bash, Ksh, etc; in particular arrays are avoided.
|
||||
#
|
||||
# The "traditional" practice of packing multiple parameters into a
|
||||
# space-separated string is a well documented source of bugs and security
|
||||
# problems, so this is (mostly) avoided, by progressively accumulating
|
||||
# options in "$@", and eventually passing that to Java.
|
||||
#
|
||||
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
|
||||
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
|
||||
# see the in-line comments for details.
|
||||
#
|
||||
# There are tweaks for specific operating systems such as AIX, CygWin,
|
||||
# Darwin, MinGW, and NonStop.
|
||||
#
|
||||
# (3) This script is generated from the Groovy template
|
||||
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# within the Gradle project.
|
||||
#
|
||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
|
||||
# Resolve links: $0 may be a link
|
||||
app_path=$0
|
||||
|
||||
# Need this for daisy-chained symlinks.
|
||||
while
|
||||
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
|
||||
[ -h "$app_path" ]
|
||||
do
|
||||
ls=$( ls -ld "$app_path" )
|
||||
link=${ls#*' -> '}
|
||||
case $link in #(
|
||||
/*) app_path=$link ;; #(
|
||||
*) app_path=$APP_HOME$link ;;
|
||||
esac
|
||||
done
|
||||
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
|
||||
|
||||
APP_NAME="Gradle"
|
||||
APP_BASE_NAME=${0##*/}
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD=maximum
|
||||
|
||||
warn () {
|
||||
echo "$*"
|
||||
} >&2
|
||||
|
||||
die () {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
} >&2
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
nonstop=false
|
||||
case "$( uname )" in #(
|
||||
CYGWIN* ) cygwin=true ;; #(
|
||||
Darwin* ) darwin=true ;; #(
|
||||
MSYS* | MINGW* ) msys=true ;; #(
|
||||
NONSTOP* ) nonstop=true ;;
|
||||
esac
|
||||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD=$JAVA_HOME/jre/sh/java
|
||||
else
|
||||
JAVACMD=$JAVA_HOME/bin/java
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD=java
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
case $MAX_FD in #(
|
||||
max*)
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
case $MAX_FD in #(
|
||||
'' | soft) :;; #(
|
||||
*)
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
fi
|
||||
|
||||
# Collect all arguments for the java command, stacking in reverse order:
|
||||
# * args from the command line
|
||||
# * the main class name
|
||||
# * -classpath
|
||||
# * -D...appname settings
|
||||
# * --module-path (only if needed)
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
|
||||
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if "$cygwin" || "$msys" ; then
|
||||
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
||||
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
|
||||
|
||||
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
||||
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
for arg do
|
||||
if
|
||||
case $arg in #(
|
||||
-*) false ;; # don't mess with options #(
|
||||
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
|
||||
[ -e "$t" ] ;; #(
|
||||
*) false ;;
|
||||
esac
|
||||
then
|
||||
arg=$( cygpath --path --ignore --mixed "$arg" )
|
||||
fi
|
||||
# Roll the args list around exactly as many times as the number of
|
||||
# args, so each arg winds up back in the position where it started, but
|
||||
# possibly modified.
|
||||
#
|
||||
# NB: a `for` loop captures its iteration list before it begins, so
|
||||
# changing the positional parameters here affects neither the number of
|
||||
# iterations, nor the values presented in `arg`.
|
||||
shift # remove old arg
|
||||
set -- "$@" "$arg" # push replacement arg
|
||||
done
|
||||
fi
|
||||
|
||||
# Collect all arguments for the java command;
|
||||
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
|
||||
# shell script including quotes and variable substitutions, so put them in
|
||||
# double quotes to make sure that they get re-expanded; and
|
||||
# * put everything else in single quotes, so that it's not re-expanded.
|
||||
|
||||
set -- \
|
||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||
-classpath "$CLASSPATH" \
|
||||
org.gradle.wrapper.GradleWrapperMain \
|
||||
"$@"
|
||||
|
||||
# Use "xargs" to parse quoted args.
|
||||
#
|
||||
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
|
||||
#
|
||||
# In Bash we could simply go:
|
||||
#
|
||||
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
|
||||
# set -- "${ARGS[@]}" "$@"
|
||||
#
|
||||
# but POSIX shell has neither arrays nor command substitution, so instead we
|
||||
# post-process each arg (as a line of input to sed) to backslash-escape any
|
||||
# character that might be a shell metacharacter, then use eval to reverse
|
||||
# that process (while maintaining the separation between arguments), and wrap
|
||||
# the whole thing up as a single "set" statement.
|
||||
#
|
||||
# This will of course break if any of these variables contains a newline or
|
||||
# an unmatched quote.
|
||||
#
|
||||
|
||||
eval "set -- $(
|
||||
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
|
||||
xargs -n1 |
|
||||
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
|
||||
tr '\n' ' '
|
||||
)" '"$@"'
|
||||
|
||||
exec "$JAVACMD" "$@"
|
89
prototypes/demo/gradlew.bat
vendored
Normal file
89
prototypes/demo/gradlew.bat
vendored
Normal file
@ -0,0 +1,89 @@
|
||||
@rem
|
||||
@rem Copyright 2015 the original author or authors.
|
||||
@rem
|
||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@rem you may not use this file except in compliance with the License.
|
||||
@rem You may obtain a copy of the License at
|
||||
@rem
|
||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||
@rem
|
||||
@rem Unless required by applicable law or agreed to in writing, software
|
||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
1
prototypes/demo/settings.gradle
Normal file
1
prototypes/demo/settings.gradle
Normal file
@ -0,0 +1 @@
|
||||
rootProject.name = "demo"
|
0
prototypes/demo/src/StyleMenu.css
Normal file
0
prototypes/demo/src/StyleMenu.css
Normal file
@ -0,0 +1,184 @@
|
||||
package com.example.demo;
|
||||
|
||||
import javafx.application.Application;
|
||||
import javafx.geometry.HPos;
|
||||
import javafx.geometry.Insets;
|
||||
import javafx.geometry.Pos;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.Label;
|
||||
import javafx.scene.control.MenuButton;
|
||||
import javafx.scene.layout.BorderPane;
|
||||
import javafx.scene.layout.ColumnConstraints;
|
||||
import javafx.scene.layout.GridPane;
|
||||
import javafx.scene.layout.RowConstraints;
|
||||
import javafx.scene.paint.Color;
|
||||
import javafx.scene.text.Font;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Objects;
|
||||
|
||||
public class HelloApplication extends Application {
|
||||
private Stage stage;
|
||||
//set up scene one
|
||||
private Scene Menu;
|
||||
private BorderPane BdP;
|
||||
|
||||
private Label title;
|
||||
private Button Play;
|
||||
private Button Select_level;
|
||||
private Button Trophy;
|
||||
//set up scene 2
|
||||
private Scene Level_menu;
|
||||
private GridPane GdP;
|
||||
private Button bck_menu;
|
||||
//button for levele
|
||||
private MenuButton select_day;
|
||||
private Button _1;
|
||||
private Button _2;
|
||||
private Button _3;
|
||||
private Button _4;
|
||||
private Button _5;
|
||||
private Button _6;
|
||||
private Button _7;
|
||||
private Button _8;
|
||||
private Button _9;
|
||||
private Button _10;
|
||||
|
||||
public void start(Stage primaryStage) {
|
||||
//set up the page
|
||||
stage = primaryStage;
|
||||
stage.setTitle("ROAD TO MASTER YOU");
|
||||
Menu = createMenu();
|
||||
Level_menu = createLevel_menu();
|
||||
|
||||
stage.setScene(Menu);
|
||||
stage.show();
|
||||
|
||||
}
|
||||
private Scene createMenu(){
|
||||
Play = new Button("Play");
|
||||
Trophy = new Button("Trophy");
|
||||
Select_level = new Button("Select Level");
|
||||
Select_level.setOnAction(event -> switchScenes(Level_menu));
|
||||
title = new Label("Welcome to road to master you");
|
||||
title.setFont(Font.font(20));
|
||||
title.setTextFill(Color.GOLD);
|
||||
BdP = new BorderPane(null,title,Select_level,Trophy,Play);
|
||||
Menu = new Scene(BdP,700,400);
|
||||
BorderPane.setAlignment(title,Pos.CENTER);
|
||||
BorderPane.setAlignment(Play,Pos.CENTER);
|
||||
BorderPane.setAlignment(Select_level,Pos.CENTER);
|
||||
BorderPane.setAlignment(Trophy,Pos.CENTER);
|
||||
Menu.getStylesheets().add("style.css");
|
||||
BdP.setPadding(new Insets(20,60,20,60));
|
||||
|
||||
return Menu;
|
||||
}
|
||||
private Scene createLevel_menu(){
|
||||
bck_menu = new Button("Back to the menu");
|
||||
bck_menu.setOnAction(event -> switchScenes(Menu));
|
||||
GdP = new GridPane();
|
||||
Level_menu = new Scene(GdP,700,400);
|
||||
_1 = new Button("1");
|
||||
_2 = new Button("2");
|
||||
_3 = new Button("3");
|
||||
_4 = new Button("4");
|
||||
_5 = new Button("5");
|
||||
_6 = new Button("6");
|
||||
_7 = new Button("7");
|
||||
_8 = new Button("8");
|
||||
_9 = new Button("9");
|
||||
_10 = new Button("10");
|
||||
select_day = new MenuButton("Select day");
|
||||
|
||||
//set up of the button
|
||||
GdP.add(select_day,1,0);
|
||||
GdP.add(_1,0,1);
|
||||
GdP.add(_2,1,1);
|
||||
GdP.add(_3,2,1);
|
||||
GdP.add(_4,0,2);
|
||||
GdP.add(_5,1,2);
|
||||
GdP.add(_6,2,2);
|
||||
GdP.add(_7,0,3);
|
||||
GdP.add(_8,1,3);
|
||||
GdP.add(_9,2,3);
|
||||
GdP.add(_10,1,4);
|
||||
GdP.add(bck_menu,2,4);
|
||||
//set up gap and padding and everything else
|
||||
GdP.setHgap(20);
|
||||
GdP.setVgap(20);
|
||||
GdP.setPadding(new Insets(40,20,20,40));
|
||||
ColumnConstraints col_1 = new ColumnConstraints();
|
||||
col_1.setPercentWidth(33);
|
||||
ColumnConstraints col_2 = new ColumnConstraints();
|
||||
col_2.setPercentWidth(33);
|
||||
ColumnConstraints col_3 = new ColumnConstraints();
|
||||
col_3.setPercentWidth(34);
|
||||
GdP.getColumnConstraints().addAll(col_1,col_2,col_3);
|
||||
//GdP.setGridLinesVisible(true);
|
||||
GridPane.setHalignment(_1, HPos.CENTER);
|
||||
GridPane.setHalignment(_2, HPos.CENTER);
|
||||
GridPane.setHalignment(_3, HPos.CENTER);
|
||||
GridPane.setHalignment(_4, HPos.CENTER);
|
||||
GridPane.setHalignment(_5, HPos.CENTER);
|
||||
GridPane.setHalignment(_6, HPos.CENTER);
|
||||
GridPane.setHalignment(_7, HPos.CENTER);
|
||||
GridPane.setHalignment(_8, HPos.CENTER);
|
||||
GridPane.setHalignment(_9, HPos.CENTER);
|
||||
GridPane.setHalignment(_10, HPos.CENTER);
|
||||
GridPane.setHalignment(select_day, HPos.CENTER);
|
||||
GridPane.setHalignment(bck_menu, HPos.CENTER);
|
||||
|
||||
|
||||
return Level_menu;
|
||||
}
|
||||
public void switchScenes(Scene scene){
|
||||
stage.setScene(scene);
|
||||
|
||||
}
|
||||
public static void main(String[] args) {
|
||||
launch(args);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/***@Override
|
||||
public void start(Stage primaryStage) {
|
||||
//set up the page
|
||||
primaryStage.setTitle("Road to Master You");
|
||||
BorderPane root = new BorderPane();
|
||||
Scene scene = new Scene(root,400,300);
|
||||
primaryStage.setScene(scene);
|
||||
primaryStage.show();
|
||||
|
||||
//set up all the object needed for the menu
|
||||
Label title = new Label("Welcome to Road to Master You");
|
||||
Button Play = new Button("Play");
|
||||
Button Select_level = new Button("Select Level");
|
||||
Button Trophy = new Button("Trophy");
|
||||
|
||||
//put all the object on the page
|
||||
root.setTop(title);
|
||||
root.setBottom(Trophy);
|
||||
root.setRight(Select_level);
|
||||
root.setLeft(Play);
|
||||
|
||||
//adjust everything as I want (position,color)
|
||||
title.setTextFill(Color.GOLD);
|
||||
BorderPane.setAlignment(title,Pos.CENTER);
|
||||
BorderPane.setAlignment(Play,Pos.CENTER);
|
||||
BorderPane.setAlignment(Select_level,Pos.CENTER);
|
||||
BorderPane.setAlignment(Trophy,Pos.CENTER);
|
||||
scene.getStylesheets().add("style.css"); //todo found why there is no link btw file
|
||||
|
||||
//Switch scene
|
||||
Select_level.setOnAction(event -> {
|
||||
SelectLevel secondWindow = new SelectLevel();
|
||||
secondWindow.show();
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
*/
|
@ -0,0 +1,14 @@
|
||||
package com.example.demo;
|
||||
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.Label;
|
||||
|
||||
public class HelloController {
|
||||
@FXML
|
||||
private Label welcomeText;
|
||||
|
||||
@FXML
|
||||
protected void onHelloButtonClick() {
|
||||
welcomeText.setText("Welcome to JavaFX Application!");
|
||||
}
|
||||
}
|
@ -0,0 +1,65 @@
|
||||
/***package com.example.demo;
|
||||
|
||||
import javafx.scene.Group;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.Label;
|
||||
import javafx.scene.layout.BorderPane;
|
||||
import javafx.scene.layout.GridPane;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
import static javafx.application.Application.launch;
|
||||
|
||||
public class SelectLevel extends Stage {
|
||||
private Stage stage;
|
||||
//set up scene one
|
||||
private Scene Menu;
|
||||
private BorderPane BdP;
|
||||
|
||||
private Label title;
|
||||
private Button Play;
|
||||
private Button Select_level;
|
||||
private Button Trophy;
|
||||
//set up scene 2
|
||||
private Scene Level_menu;
|
||||
private GridPane GdP;
|
||||
private Button bck_menu;
|
||||
|
||||
public void start(Stage primaryStage) {
|
||||
//set up the page
|
||||
primaryStage.setTitle("Select your Level");
|
||||
Menu = createMenu();
|
||||
Level_menu = createLevel_menu();
|
||||
|
||||
primaryStage.setScene(Menu);
|
||||
primaryStage.show();
|
||||
|
||||
}
|
||||
private Scene createMenu(){
|
||||
Play = new Button("Play");
|
||||
Trophy = new Button("Trophy");
|
||||
Select_level = new Button("Select Level");
|
||||
Select_level.setOnAction(event -> switchScenes(Level_menu));
|
||||
title = new Label("Welcome to road to master you");
|
||||
BdP = new BorderPane(null,title,Select_level,Trophy,Play);
|
||||
Menu = new Scene(BdP,700,400);
|
||||
|
||||
return Menu;
|
||||
}
|
||||
private Scene createLevel_menu(){
|
||||
bck_menu = new Button("Back to the menu");
|
||||
bck_menu.setOnAction(event -> switchScenes(Menu));
|
||||
GdP = new GridPane();
|
||||
Level_menu = new Scene(GdP,700,400);
|
||||
|
||||
return Level_menu;
|
||||
}
|
||||
public void switchScenes(Scene scene){
|
||||
stage.setScene(scene);
|
||||
|
||||
}
|
||||
public static void main(String[] args) {
|
||||
launch(args);
|
||||
}
|
||||
}
|
||||
***/
|
8
prototypes/demo/src/main/java/module-info.java
Normal file
8
prototypes/demo/src/main/java/module-info.java
Normal file
@ -0,0 +1,8 @@
|
||||
module com.example.demo {
|
||||
requires javafx.controls;
|
||||
requires javafx.fxml;
|
||||
|
||||
|
||||
opens com.example.demo to javafx.fxml;
|
||||
exports com.example.demo;
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.geometry.Insets?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
|
||||
<?import javafx.scene.control.Button?>
|
||||
<VBox alignment="CENTER" spacing="20.0" xmlns:fx="http://javafx.com/fxml"
|
||||
fx:controller="com.example.demo.HelloController">
|
||||
<padding>
|
||||
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0"/>
|
||||
</padding>
|
||||
|
||||
<Label fx:id="welcomeText"/>
|
||||
<Button text="Hello!" onAction="#onHelloButtonClick"/>
|
||||
</VBox>
|
BIN
prototypes/interface-menu/BackGround-menu.jpg
Normal file
BIN
prototypes/interface-menu/BackGround-menu.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 MiB |
BIN
prototypes/interface-menu/Background-select-level.jpg
Normal file
BIN
prototypes/interface-menu/Background-select-level.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 423 KiB |
32
prototypes/interface-menu/Road-to-masterU/Level.html
Normal file
32
prototypes/interface-menu/Road-to-masterU/Level.html
Normal file
@ -0,0 +1,32 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Level - Road to masterU</title>
|
||||
<link href="style-Level.css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<section class="select-day">
|
||||
<h1>Day 1</h1>
|
||||
<a href="" class="lien-icone">></a>
|
||||
</section>
|
||||
<section class="select-level">
|
||||
<div class="level"><a href="">1</a></div>
|
||||
<div class="level"><a href="">2</a></div>
|
||||
<div class="level"><a href="">3</a></div>
|
||||
<div class="level"><a href="">4</a></div>
|
||||
<div class="level"><a href="">5</a></div>
|
||||
<div class="level"><a href="">6</a></div>
|
||||
<div class="level"><a href="">7</a></div>
|
||||
<div class="level"><a href="">8</a></div>
|
||||
<div class="level"><a href="">9</a></div>
|
||||
<div class="level"><a href="">10</a></div>
|
||||
|
||||
</section>
|
||||
</main>
|
||||
<footer>
|
||||
<a href="Menu.html" class="back-to-accueil">Menu</a>
|
||||
</footer>
|
||||
|
||||
</body>
|
23
prototypes/interface-menu/Road-to-masterU/Menu.html
Normal file
23
prototypes/interface-menu/Road-to-masterU/Menu.html
Normal file
@ -0,0 +1,23 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Menu - Road to masterU</title>
|
||||
<link href="style-menu.css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<section class="title">
|
||||
<h1>ROAD TO MASTERU </h1>
|
||||
</section>
|
||||
<section class="setting">
|
||||
<a href="" class="setting-Play"><h2>Play</h2></a>
|
||||
<a href="Level.html" class="setting-level"><h2>Level</h2></a>
|
||||
</section>
|
||||
</main>
|
||||
<footer>
|
||||
<a href="" class="lien-icone"><img src="../Trophee-pic.jpg" alt="trophy"></a>
|
||||
<a href="" class="lien-icone"><img src="" alt="link-setting"></a>
|
||||
</footer>
|
||||
|
||||
</body>
|
45
prototypes/interface-menu/Road-to-masterU/style-Level.css
Normal file
45
prototypes/interface-menu/Road-to-masterU/style-Level.css
Normal file
@ -0,0 +1,45 @@
|
||||
body{
|
||||
background-image: url("../Background-select-level.jpg");
|
||||
background-position: right;
|
||||
}
|
||||
h1,.lien-icone,.back-to-accueil{
|
||||
font-size: 75px;
|
||||
padding-top: 80px;
|
||||
color:gold;
|
||||
}
|
||||
footer{
|
||||
text-align: center;
|
||||
padding:50px
|
||||
|
||||
}
|
||||
a{
|
||||
text-decoration: none;
|
||||
color:black;
|
||||
}
|
||||
.select-day{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: baseline;
|
||||
|
||||
}
|
||||
.select-level{
|
||||
display:grid;
|
||||
grid-template-columns: 40px 40px 40px;
|
||||
grid-gap: 30px;
|
||||
justify-content: center;
|
||||
}
|
||||
.level{
|
||||
height: 60px;
|
||||
border:3px solid black;
|
||||
|
||||
}
|
||||
.level>a{
|
||||
font-size:30px;
|
||||
display: flex;
|
||||
justify-content:center;
|
||||
}
|
||||
.lien-icone{
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
27
prototypes/interface-menu/Road-to-masterU/style-menu.css
Normal file
27
prototypes/interface-menu/Road-to-masterU/style-menu.css
Normal file
@ -0,0 +1,27 @@
|
||||
body{
|
||||
background-image: url("../BackGround-menu.jpg");
|
||||
background-position: center;
|
||||
}
|
||||
h1{
|
||||
font-size: 75px;
|
||||
padding-top: 80px;
|
||||
text-decoration: underline;
|
||||
}
|
||||
h1,h2{
|
||||
text-align: center;
|
||||
color: gold;
|
||||
}
|
||||
h2{
|
||||
font-size: 50px;
|
||||
padding-top: 40px;
|
||||
}
|
||||
footer{
|
||||
position:absolute;
|
||||
bottom:0;
|
||||
padding-bottom: 10px;
|
||||
right:10px;
|
||||
|
||||
}
|
||||
a{
|
||||
text-decoration: none;
|
||||
}
|
BIN
prototypes/interface-menu/Trophee-pic.jpg
Normal file
BIN
prototypes/interface-menu/Trophee-pic.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.0 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.1 MiB |
Binary file not shown.
After Width: | Height: | Size: 423 KiB |
@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.scene.control.Button?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.control.MenuButton?>
|
||||
<?import javafx.scene.control.MenuItem?>
|
||||
<?import javafx.scene.layout.ColumnConstraints?>
|
||||
<?import javafx.scene.layout.GridPane?>
|
||||
<?import javafx.scene.layout.RowConstraints?>
|
||||
|
||||
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/19">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<Label prefHeight="108.0" prefWidth="200.0" style="-fx-alignment: center;" text="Select Level" GridPane.columnIndex="2" />
|
||||
<Button mnemonicParsing="false" text="1" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="2" />
|
||||
<Button mnemonicParsing="false" text="2" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.rowIndex="2" />
|
||||
<Button mnemonicParsing="false" text="3" GridPane.columnIndex="3" GridPane.halignment="CENTER" GridPane.rowIndex="2" />
|
||||
<Button mnemonicParsing="false" text="5" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.rowIndex="3" />
|
||||
<Button mnemonicParsing="false" text="6" GridPane.columnIndex="3" GridPane.halignment="CENTER" GridPane.rowIndex="3" />
|
||||
<Button mnemonicParsing="false" text="7" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="4" />
|
||||
<Button mnemonicParsing="false" text="8" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.rowIndex="4" />
|
||||
<Button mnemonicParsing="false" text="4" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="3" />
|
||||
<Button mnemonicParsing="false" stylesheets="@SelectLevel.css" text="9" GridPane.columnIndex="3" GridPane.halignment="CENTER" GridPane.rowIndex="4" />
|
||||
<Button mnemonicParsing="false" text="10" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.rowIndex="5" />
|
||||
<MenuButton mnemonicParsing="false" text="Select day " GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.rowIndex="1">
|
||||
<items>
|
||||
<MenuItem mnemonicParsing="false" text="Action 1" />
|
||||
<MenuItem mnemonicParsing="false" text="Action 2" />
|
||||
</items>
|
||||
</MenuButton>
|
||||
<Button mnemonicParsing="false" text="Back to menu" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.rowIndex="6" />
|
||||
</children>
|
||||
</GridPane>
|
@ -0,0 +1,7 @@
|
||||
.root {
|
||||
-fx-background-image: url("Background-select-level.jpg");
|
||||
-fx-background-position: center
|
||||
}
|
||||
.button{
|
||||
-fx-alignment: center;
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.geometry.Insets?>
|
||||
<?import javafx.scene.control.Button?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.layout.BorderPane?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
<BorderPane centerShape="false" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1">
|
||||
<top>
|
||||
<Label prefHeight="116.0" prefWidth="600.0" style="-fx-alignment: center; -fx-padding: 10;" text="Road to MasterU" textAlignment="CENTER" textFill="GOLD" underline="true" wrapText="true" BorderPane.alignment="CENTER">
|
||||
<font>
|
||||
<Font size="26.0" />
|
||||
</font>
|
||||
</Label>
|
||||
</top>
|
||||
<bottom>
|
||||
<Button mnemonicParsing="false" style="-fx-alignment: center;" text="Trophy" textAlignment="CENTER" BorderPane.alignment="CENTER">
|
||||
<BorderPane.margin>
|
||||
<Insets bottom="100.0" />
|
||||
</BorderPane.margin></Button>
|
||||
</bottom>
|
||||
<right>
|
||||
<Button mnemonicParsing="false" prefHeight="0.0" prefWidth="153.0" style="-fx-alignment: center;" text="Select Level" BorderPane.alignment="CENTER">
|
||||
<BorderPane.margin>
|
||||
<Insets right="100.0" />
|
||||
</BorderPane.margin></Button>
|
||||
</right>
|
||||
<left>
|
||||
<Button mnemonicParsing="false" prefHeight="10.0" prefWidth="90.0" style="-fx-alignment: center;" text="Play" textAlignment="CENTER" BorderPane.alignment="CENTER">
|
||||
<BorderPane.margin>
|
||||
<Insets left="110.0" />
|
||||
</BorderPane.margin></Button>
|
||||
</left>
|
||||
</BorderPane>
|
@ -0,0 +1,12 @@
|
||||
.root{
|
||||
-fx-background-image:url("BackGround-menu.jpg");
|
||||
-fx-background-position:center;
|
||||
}
|
||||
.label{
|
||||
-fx-font-size: 75;
|
||||
}
|
||||
.button {
|
||||
-fx-start-margin: 20;
|
||||
-fx-text-alignment: center;
|
||||
-fx-padding: 10;
|
||||
}
|
Reference in New Issue
Block a user