ajout java doc + Makefile + mariadb.jar
This commit is contained in:
@@ -1,40 +1,81 @@
|
||||
// src/main/java/model/Pocket.java
|
||||
package model;
|
||||
|
||||
import java.awt.Point;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* La classe <code>Pocket</code> représente un groupe de tuiles adjacentes
|
||||
* d'un même type de terrain dans le jeu.
|
||||
*/
|
||||
public class Pocket {
|
||||
private TerrainType terrainType; // Type de terrain de cette Pocket
|
||||
private Set<Point> tiles; // Ensemble des positions des tuiles de la Pocket
|
||||
|
||||
/**
|
||||
* Constructeur de la classe <code>Pocket</code>.
|
||||
*
|
||||
* @param terrainType Le type de terrain associé à cette Pocket.
|
||||
*/
|
||||
public Pocket(TerrainType terrainType) {
|
||||
this.terrainType = terrainType;
|
||||
this.tiles = new HashSet<>();
|
||||
}
|
||||
|
||||
/**
|
||||
* Récupère le type de terrain de cette Pocket.
|
||||
*
|
||||
* @return Le type de terrain de cette Pocket.
|
||||
*/
|
||||
public TerrainType getTerrainType() {
|
||||
return terrainType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Obtient la taille de cette Pocket, c'est-à-dire le nombre de tuiles.
|
||||
*
|
||||
* @return La taille de la Pocket.
|
||||
*/
|
||||
public int getSize() {
|
||||
return tiles.size();
|
||||
}
|
||||
|
||||
/**
|
||||
* Ajoute une tuile à cette Pocket à une position donnée.
|
||||
*
|
||||
* @param position La position de la tuile à ajouter.
|
||||
*/
|
||||
public void addTile(Point position) {
|
||||
tiles.add(position);
|
||||
}
|
||||
|
||||
/**
|
||||
* Vérifie si une tuile à une position donnée est présente dans cette Pocket.
|
||||
*
|
||||
* @param position La position de la tuile à vérifier.
|
||||
* @return <code>true</code> si la tuile est présente, sinon <code>false</code>.
|
||||
*/
|
||||
public boolean containsTile(Point position) {
|
||||
return tiles.contains(position);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fusionne cette Pocket avec une autre Pocket si elles partagent le même type de terrain.
|
||||
*
|
||||
* @param other La Pocket à fusionner.
|
||||
*/
|
||||
public void merge(Pocket other) {
|
||||
if (this.terrainType == other.terrainType) {
|
||||
this.tiles.addAll(other.tiles);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Calcule le score de cette Pocket basé sur la taille au carré.
|
||||
*
|
||||
* @return Le score de la Pocket.
|
||||
*/
|
||||
public int calculateScore() {
|
||||
return getSize() * getSize(); // La taille au carré donne le score
|
||||
}
|
||||
|
@@ -1,5 +1,14 @@
|
||||
// src/main/java/model/TerrainType.java
|
||||
package model;
|
||||
|
||||
/**
|
||||
* L'énumération <code>TerrainType</code> représente les différents types de terrains
|
||||
* disponibles dans le jeu.
|
||||
*/
|
||||
public enum TerrainType {
|
||||
MER, CHAMP, PRE, FORET, MONTAGNE
|
||||
MER, // Représente le type de terrain "mer"
|
||||
CHAMP, // Représente le type de terrain "champ"
|
||||
PRE, // Représente le type de terrain "pré"
|
||||
FORET, // Représente le type de terrain "forêt"
|
||||
MONTAGNE // Représente le type de terrain "montagne"
|
||||
}
|
||||
|
@@ -1,11 +1,24 @@
|
||||
// src/main/java/model/Tile.java
|
||||
package model;
|
||||
|
||||
/**
|
||||
* La classe <code>Tile</code> représente une tuile dans le jeu, qui peut contenir un ou deux types de terrains.
|
||||
* Chaque tuile a un identifiant unique, un tableau de types de terrains, et gère sa rotation.
|
||||
*/
|
||||
public class Tile {
|
||||
private int id; // ID de la tuile
|
||||
private TerrainType[] terrains; // Tableau contenant deux types de terrains (ex. MER, FORET)
|
||||
private int segmentsForTerrain1; // Nombre de segments pour le premier terrain
|
||||
private int rotation; // Rotation de la tuile (en multiple de 60 degrés)
|
||||
|
||||
/**
|
||||
* Constructeur pour créer une nouvelle tuile avec deux types de terrains.
|
||||
*
|
||||
* @param id L'identifiant de la tuile.
|
||||
* @param terrain1 Le premier type de terrain.
|
||||
* @param terrain2 Le deuxième type de terrain.
|
||||
* @param segmentsForTerrain1 Le nombre de segments pour le premier terrain.
|
||||
*/
|
||||
public Tile(int id, TerrainType terrain1, TerrainType terrain2, int segmentsForTerrain1) {
|
||||
this.id = id;
|
||||
this.terrains = new TerrainType[]{terrain1, terrain2};
|
||||
@@ -13,7 +26,12 @@ public class Tile {
|
||||
this.rotation = 0; // Initialisation de la rotation à 0
|
||||
}
|
||||
|
||||
// Renvoie le terrain pour l'index donné (0 ou 1)
|
||||
/**
|
||||
* Renvoie le terrain pour l'index donné (0 ou 1).
|
||||
*
|
||||
* @param index L'index du terrain à récupérer.
|
||||
* @return Le type de terrain à l'index spécifié, ou null si l'index est invalide.
|
||||
*/
|
||||
public TerrainType getTerrain(int index) {
|
||||
if (index >= 0 && index < terrains.length) {
|
||||
return terrains[index];
|
||||
@@ -21,7 +39,12 @@ public class Tile {
|
||||
return null; // Retourne null si l'index est invalide
|
||||
}
|
||||
|
||||
// Méthode pour obtenir le terrain associé à un segment spécifique (prend en compte la rotation)
|
||||
/**
|
||||
* Méthode pour obtenir le terrain associé à un segment spécifique (prend en compte la rotation).
|
||||
*
|
||||
* @param segmentIndex L'index du segment.
|
||||
* @return Le type de terrain associé au segment spécifié.
|
||||
*/
|
||||
public TerrainType getTerrainForSegment(int segmentIndex) {
|
||||
int adjustedIndex = (segmentIndex - rotation + 6) % 6;
|
||||
if (adjustedIndex < segmentsForTerrain1) {
|
||||
@@ -31,18 +54,34 @@ public class Tile {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fait tourner la tuile dans le sens horaire.
|
||||
*/
|
||||
public void rotateClockwise() {
|
||||
rotation = (rotation + 1) % 6;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fait tourner la tuile dans le sens antihoraire.
|
||||
*/
|
||||
public void rotateCounterClockwise() {
|
||||
rotation = (rotation + 5) % 6; // Tourner dans le sens inverse
|
||||
}
|
||||
|
||||
/**
|
||||
* Renvoie la rotation actuelle de la tuile.
|
||||
*
|
||||
* @return La rotation de la tuile en multiples de 60 degrés.
|
||||
*/
|
||||
public int getRotation() {
|
||||
return rotation;
|
||||
}
|
||||
|
||||
/**
|
||||
* Renvoie l'identifiant de la tuile.
|
||||
*
|
||||
* @return L'identifiant de la tuile.
|
||||
*/
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
@@ -1,14 +1,25 @@
|
||||
// src/main/java/model/TileDatabaseManager.java
|
||||
package model;
|
||||
|
||||
import java.sql.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* La classe <code>TileDatabaseManager</code> gère les interactions avec la base de données
|
||||
* pour récupérer les tuiles associées à une série donnée.
|
||||
*/
|
||||
public class TileDatabaseManager {
|
||||
private static final String DB_URL = "jdbc:mariadb://dwarves.iut-fbleau.fr/akagundu";
|
||||
private static final String USER = "akagundu";
|
||||
private static final String PASSWORD = "dersim62Lodek";
|
||||
|
||||
/**
|
||||
* Récupère les tuiles associées à une série spécifique à partir de la base de données.
|
||||
*
|
||||
* @param idSeries L'identifiant de la série pour laquelle les tuiles doivent être récupérées.
|
||||
* @return Une liste d'objets <code>Tile</code> associés à la série spécifiée.
|
||||
*/
|
||||
public List<Tile> getTilesBySeries(int idSeries) {
|
||||
List<Tile> tiles = new ArrayList<>();
|
||||
String query = "SELECT id, couleur1, couleur2, chiffre FROM Tuile WHERE id_serie = ? ORDER BY id ASC";
|
||||
@@ -38,7 +49,4 @@ public class TileDatabaseManager {
|
||||
}
|
||||
return tiles;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user