Merge branch 'master' of https://git.herisson.ovh/undefined_name/School_Project
This commit is contained in:
commit
d5db1b14af
@ -4,6 +4,7 @@
|
||||
|
||||
- [Première entrevue](./rapports/130223.md)
|
||||
- [Deuxième entrevue](./rapports/200223.md)
|
||||
- [Troisième entrevue](./rapports/230323.md)
|
||||
|
||||
# Histoire
|
||||
|
||||
|
@ -1,36 +1,39 @@
|
||||
|
||||
Intro histoire
|
||||
# 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é
|
||||
|
||||
intro à jouer
|
||||
# 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
|
||||
Mat --> poids de sport
|
||||
Eddy --> balle de basket,...
|
||||
Anthony --> tenue de scout
|
||||
1. Mat --> poids de sport
|
||||
2. Eddy --> balle de basket,...
|
||||
3. Anthony --> tenue de scout
|
||||
|
||||
Déménagement histoire :
|
||||
## 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 :
|
||||
## 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
|
||||
|
||||
continuité histoire
|
||||
# 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
|
||||
@ -38,23 +41,29 @@ j arrive à mon kot mais qlq chose à changer, la couleur de la porte n est plus
|
||||
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
|
||||
## à 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
|
||||
--> 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 lol)
|
||||
(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 2 histoire
|
||||
|
||||
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.
|
46
app/src/main/java/school_project/Map.java
Normal file
46
app/src/main/java/school_project/Map.java
Normal file
@ -0,0 +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 final ArrayList<Piece> pieces = new ArrayList<>();
|
||||
|
||||
public Map(boolean[][] matrix) {
|
||||
super(matrix);
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
59
app/src/main/java/school_project/Piece.java
Normal file
59
app/src/main/java/school_project/Piece.java
Normal file
@ -0,0 +1,59 @@
|
||||
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 Vec2 Position;
|
||||
private Map linked_map;
|
||||
|
||||
public Piece() {
|
||||
super();
|
||||
}
|
||||
|
||||
public Piece(boolean[][] matrix) {
|
||||
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
|
||||
*
|
||||
* @param times Set the amount of time the rotation should be executed. Should be set between 1 and 3.
|
||||
*/
|
||||
public void RotateRight(int times){
|
||||
while(times > 0) {
|
||||
boolean[][] temp_matrix = new boolean[width][height];
|
||||
for (int i = 0; i < width; i++) {
|
||||
for (int j = 0; j < height; j++) {
|
||||
temp_matrix[i][j] = matrix[-j+height-1][i];
|
||||
}
|
||||
}
|
||||
times--;
|
||||
matrix = temp_matrix;
|
||||
}
|
||||
}
|
||||
}
|
44
app/src/main/java/school_project/Shape.java
Normal file
44
app/src/main/java/school_project/Shape.java
Normal file
@ -0,0 +1,44 @@
|
||||
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;
|
||||
protected int height, width;
|
||||
|
||||
public Shape() {
|
||||
matrix = new boolean[0][0];
|
||||
}
|
||||
|
||||
public Shape(boolean[][] matrix){
|
||||
this.setShape(matrix);
|
||||
}
|
||||
|
||||
public void setShape(boolean[][] matrix) throws IllegalArgumentException{
|
||||
height = matrix.length;
|
||||
width = matrix[0].length;
|
||||
|
||||
for (boolean[] row: matrix){
|
||||
if(row.length != width){
|
||||
throw new IllegalArgumentException("The argument should be a square matrix");
|
||||
}
|
||||
}
|
||||
this.matrix = matrix;
|
||||
}
|
||||
|
||||
public int getHeight() {
|
||||
return height;
|
||||
}
|
||||
|
||||
public int getWidth() {
|
||||
return width;
|
||||
}
|
||||
|
||||
public boolean[][] getShape() {
|
||||
return 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());
|
||||
}
|
||||
}
|
60
app/src/test/java/school_project/PieceTest.java
Normal file
60
app/src/test/java/school_project/PieceTest.java
Normal file
@ -0,0 +1,60 @@
|
||||
package school_project;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
class PieceTest {
|
||||
|
||||
@Test
|
||||
void rotateRight() {
|
||||
boolean[][] piece1_matrix = {
|
||||
{true, false, false},
|
||||
{false, true, false},
|
||||
{true, true, false},
|
||||
};
|
||||
|
||||
boolean[][] piece1_matrix_result = {
|
||||
{true, false, true},
|
||||
{true, true, false},
|
||||
{false, false, false},
|
||||
};
|
||||
|
||||
boolean[][] piece2_matrix = {
|
||||
{true},
|
||||
{false},
|
||||
{true},
|
||||
};
|
||||
|
||||
boolean[][] piece2_matrix_result = {
|
||||
{true, false, true},
|
||||
};
|
||||
|
||||
boolean[][] piece3_matrix_result = {
|
||||
{false, false, false},
|
||||
{false, true, true},
|
||||
{true, false, true},
|
||||
};
|
||||
|
||||
Piece piece1 = new Piece();
|
||||
piece1.setShape(piece1_matrix);
|
||||
|
||||
Piece piece2 = new Piece(piece2_matrix);
|
||||
|
||||
Piece piece3 = new Piece(piece1_matrix);
|
||||
|
||||
Piece piece4 = new Piece(piece1_matrix);
|
||||
|
||||
piece1.RotateRight(1);
|
||||
assertArrayEquals(piece1_matrix_result, piece1.getShape());
|
||||
|
||||
piece2.RotateRight(1);
|
||||
assertArrayEquals(piece2_matrix_result, piece2.getShape());
|
||||
|
||||
piece3.RotateRight(3);
|
||||
assertArrayEquals(piece3_matrix_result, piece3.getShape());
|
||||
|
||||
piece4.RotateRight(3);
|
||||
assertNotEquals(piece1_matrix_result, piece4.getShape());
|
||||
}
|
||||
}
|
48
app/src/test/java/school_project/ShapeTest.java
Normal file
48
app/src/test/java/school_project/ShapeTest.java
Normal file
@ -0,0 +1,48 @@
|
||||
package school_project;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
class ShapeTest {
|
||||
|
||||
@Test
|
||||
void setShape() {
|
||||
boolean[][] matrix_shape1 = {
|
||||
{true, false},
|
||||
{true, true},
|
||||
{true, false}
|
||||
};
|
||||
boolean[][] matrix_shape2 = {
|
||||
{true, false, true},
|
||||
{true, true, true},
|
||||
{true, false, true},
|
||||
};
|
||||
boolean[][] matrix_shape3 = {
|
||||
{true, false, true},
|
||||
{true, true}
|
||||
};
|
||||
|
||||
boolean[][] matrix_shape4 = {
|
||||
{true},
|
||||
{false},
|
||||
{true}
|
||||
};
|
||||
|
||||
Shape shape1 = new Shape();
|
||||
shape1.setShape(matrix_shape1);
|
||||
assertEquals(3, shape1.getHeight());
|
||||
assertEquals(2, shape1.getWidth());
|
||||
|
||||
Shape shape2 = new Shape(matrix_shape2);
|
||||
assertEquals(3, shape2.getHeight());
|
||||
assertEquals(3, shape2.getWidth());
|
||||
|
||||
assertThrows(IllegalArgumentException.class, () -> new Shape(matrix_shape3));
|
||||
|
||||
Shape shape4 = new Shape(matrix_shape4);
|
||||
assertEquals(3, shape4.getHeight());
|
||||
assertEquals(1, shape4.getWidth());
|
||||
|
||||
}
|
||||
}
|
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 |
Loading…
Reference in New Issue
Block a user