Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
538ed61aa4 | |||
dadfb51af0 | |||
acb3ef08fd | |||
4c57109b2a | |||
8753993349 | |||
d42a020c63 | |||
91906e2afb | |||
91a0b1e536 |
3
.gitignore
vendored
3
.gitignore
vendored
@ -151,3 +151,6 @@ tags
|
|||||||
*.class
|
*.class
|
||||||
.jar
|
.jar
|
||||||
bin/
|
bin/
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
.ps1
|
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"makefile.makefilePath": "C:\\Users\\Loris\\OneDrive - UPEC\\Documents\\DEV\\SAE_DEV_JAVA\\makefile"
|
|
||||||
}
|
|
2
LICENSE
2
LICENSE
@ -1,6 +1,6 @@
|
|||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2024 balocchi
|
Copyright (c) 2024 Juliette CHARPENTIER, Loris BALOCCHI, Luc DARTOIS
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
# Définir le chemin de base du projet
|
|
||||||
$projectPath = "C:\Users\Loris\OneDrive - UPEC\Documents\DEV\SAE_DEV_JAVA"
|
|
||||||
$binPath = "$projectPath\bin"
|
|
||||||
|
|
||||||
# Naviguer au répertoire racine du projet
|
|
||||||
cd $projectPath
|
|
||||||
|
|
||||||
# Afficher un message de lancement
|
|
||||||
Write-Host "Jeu lancé."
|
|
||||||
|
|
||||||
# Exécuter la classe principale
|
|
||||||
java -classpath $binPath com.charpentierbalocchi.dorfjavatik.main.DorfJavaTik
|
|
||||||
|
|
||||||
# Afficher un message de fin
|
|
||||||
Write-Host "Jeu fermé."
|
|
@ -1 +0,0 @@
|
|||||||
Main-Class: com.charpentierbalocchi.dorfjavatik.view.FenetreDemarrage
|
|
95
README.md
95
README.md
@ -1,12 +1,93 @@
|
|||||||
# SAE_DEV_JAVA
|
# DorfJavaTik
|
||||||
|
|
||||||
## dorfjavatik
|
|
||||||
|
|
||||||
Projet Saé de DEV première année deuxième semestre.
|
Projet Saé de DEV première année deuxième semestre.
|
||||||
Binome : Balocchi Loris
|
Binome : Balocchi Loris
|
||||||
Charpentier Juliette
|
Charpentier Juliette
|
||||||
|
|
||||||
| |
|
DorfJavaTik est un jeu développé en Java utilisant Swing pour l'interface graphique. Ce README fournit des instructions détaillées pour compiler et exécuter le projet en utilisant le `Makefile` sous Linux.
|
||||||
[°v°]
|
|
||||||
/[ ]\
|
## Prérequis
|
||||||
| |
|
|
||||||
|
Avant de commencer, assurez-vous que les outils suivants sont installés sur votre système:
|
||||||
|
|
||||||
|
- Java Development Kit (JDK)
|
||||||
|
- `make`
|
||||||
|
|
||||||
|
Vous pouvez vérifier si Java et `make` sont installés en exécutant les commandes suivantes dans votre terminal :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
java -version
|
||||||
|
javac -version
|
||||||
|
make -v
|
||||||
|
```
|
||||||
|
|
||||||
|
## Structure du projet
|
||||||
|
|
||||||
|
Le projet est organisé comme suit :
|
||||||
|
|
||||||
|
```
|
||||||
|
/src
|
||||||
|
/com
|
||||||
|
/charpentierbalocchi
|
||||||
|
/dorfjavatik
|
||||||
|
/controller
|
||||||
|
/model
|
||||||
|
/util
|
||||||
|
/view
|
||||||
|
/resources
|
||||||
|
- background.wav
|
||||||
|
- image.gif
|
||||||
|
/bin
|
||||||
|
```
|
||||||
|
|
||||||
|
## Utilisation du Makefile
|
||||||
|
|
||||||
|
Le `Makefile` inclus dans le projet offre plusieurs commandes pour faciliter la compilation, l'exécution et la gestion des fichiers de projet.
|
||||||
|
|
||||||
|
### Compilation du projet
|
||||||
|
|
||||||
|
Pour compiler le projet, naviguez dans le répertoire racine du projet et exécutez la commande suivante :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make
|
||||||
|
```
|
||||||
|
|
||||||
|
Cette commande effectue les actions suivantes :
|
||||||
|
|
||||||
|
- Nettoie le répertoire de build précédent (`bin`).
|
||||||
|
- Compile les sources Java.
|
||||||
|
- Copie les ressources nécessaires dans le répertoire de build.
|
||||||
|
|
||||||
|
### Exécution du projet
|
||||||
|
|
||||||
|
Pour exécuter le projet après la compilation, utilisez la commande :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make run
|
||||||
|
```
|
||||||
|
|
||||||
|
Cette commande lance le jeu en utilisant les fichiers compilés dans le répertoire `bin`, sans passer par un fichier `.jar`.
|
||||||
|
|
||||||
|
### Génération de la documentation
|
||||||
|
|
||||||
|
Pour générer la documentation du projet (Javadoc), exécutez la commande :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make javadoc
|
||||||
|
```
|
||||||
|
|
||||||
|
La documentation sera placée dans `bin/docs`.
|
||||||
|
|
||||||
|
### Nettoyage du projet
|
||||||
|
|
||||||
|
Pour supprimer tous les fichiers générés lors de la compilation, y compris les fichiers `.class` et la documentation, exécutez :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make clean
|
||||||
|
```
|
||||||
|
|
||||||
|
Cette commande nettoiera le répertoire `bin` en supprimant tous les fichiers et dossiers qu'il contient.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
Suivez ces instructions pour compiler et exécuter le projet DorfJavaTik en utilisant `make`.
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
# Script de Compilation pour PowerShell
|
|
||||||
|
|
||||||
# Définir le chemin de base du projet
|
|
||||||
$projectPath = "C:\Users\Loris\OneDrive - UPEC\Documents\DEV\SAE_DEV_JAVA\src"
|
|
||||||
$outputDir = "C:\Users\Loris\OneDrive - UPEC\Documents\DEV\SAE_DEV_JAVA\bin" # Dossier pour les fichiers .class
|
|
||||||
$resourcesPath = "C:\Users\Loris\OneDrive - UPEC\Documents\DEV\SAE_DEV_JAVA\src\com\charpentierbalocchi\dorfjavatik\resources\"
|
|
||||||
$resourcesOutputDir = "C:\Users\Loris\OneDrive - UPEC\Documents\DEV\SAE_DEV_JAVA\bin\com\charpentierbalocchi\dorfjavatik\resources\" # Dossier pour les ressources
|
|
||||||
|
|
||||||
# Créer le dossier de sortie s'il n'existe pas
|
|
||||||
if (-not (Test-Path $outputDir)) {
|
|
||||||
New-Item -Path $outputDir -ItemType Directory
|
|
||||||
}
|
|
||||||
|
|
||||||
# Naviguer au répertoire racine du projet
|
|
||||||
Set-Location $projectPath
|
|
||||||
|
|
||||||
# Compiler tous les fichiers Java en spécifiant le dossier de sortie pour les fichiers .class et en utilisant UTF-8 pour l'encodage
|
|
||||||
# javac -d $outputDir -encoding UTF-8 (Get-ChildItem -Path $projectPath -Recurse -Filter *.java).FullName
|
|
||||||
|
|
||||||
# Copier les ressources dans le répertoire de sortie
|
|
||||||
if (-not (Test-Path $resourcesOutputDir)) {
|
|
||||||
New-Item -Path $resourcesOutputDir -ItemType Directory
|
|
||||||
}
|
|
||||||
Copy-Item -Path $resourcesPath* -Destination $resourcesOutputDir -Recurse -Force
|
|
||||||
|
|
||||||
# Afficher un message de fin
|
|
||||||
Write-Host "Compilation terminée avec succès. Les fichiers .class et les ressources sont dans le dossier '$outputDir'."
|
|
||||||
|
|
||||||
cd ..
|
|
@ -1,37 +0,0 @@
|
|||||||
# Script de Compilation pour PowerShell
|
|
||||||
|
|
||||||
# Définir le chemin de base du projet
|
|
||||||
$projectPath = "C:\Users\Loris\OneDrive - UPEC\Documents\DEV\SAE_DEV_JAVA\src"
|
|
||||||
$outputDir = "C:\Users\Loris\OneDrive - UPEC\Documents\DEV\SAE_DEV_JAVA\bin" # Dossier pour les fichiers .class
|
|
||||||
$resourcesPath = "C:\Users\Loris\OneDrive - UPEC\Documents\DEV\SAE_DEV_JAVA\src\com\charpentierbalocchi\dorfjavatik\resources\"
|
|
||||||
$resourcesOutputDir = "C:\Users\Loris\OneDrive - UPEC\Documents\DEV\SAE_DEV_JAVA\bin\com\charpentierbalocchi\dorfjavatik\resources\" # Dossier pour les ressources
|
|
||||||
$manifestPath = "C:\Users\Loris\OneDrive - UPEC\Documents\DEV\SAE_DEV_JAVA\MANIFEST.MF"
|
|
||||||
$jarFile = "C:\Users\Loris\OneDrive - UPEC\Documents\DEV\SAE_DEV_JAVA\DorfJavaTik.jar"
|
|
||||||
$jdkBinPath = "C:\Program Files\Java\jdk-17\bin" # Remplacer par le chemin correct vers le dossier bin du JDK
|
|
||||||
|
|
||||||
# Créer le dossier de sortie s'il n'existe pas
|
|
||||||
if (-not (Test-Path $outputDir)) {
|
|
||||||
New-Item -Path $outputDir -ItemType Directory
|
|
||||||
}
|
|
||||||
|
|
||||||
# Naviguer au répertoire racine du projet
|
|
||||||
Set-Location $projectPath
|
|
||||||
|
|
||||||
# Compiler tous les fichiers Java en spécifiant le dossier de sortie pour les fichiers .class et en utilisant UTF-8 pour l'encodage
|
|
||||||
javac -d $outputDir -encoding UTF-8 (Get-ChildItem -Path $projectPath -Recurse -Filter *.java).FullName
|
|
||||||
|
|
||||||
# Copier les ressources dans le répertoire de sortie
|
|
||||||
if (-not (Test-Path $resourcesOutputDir)) {
|
|
||||||
New-Item -Path $resourcesOutputDir -ItemType Directory
|
|
||||||
}
|
|
||||||
Copy-Item -Path $resourcesPath* -Destination $resourcesOutputDir -Recurse -Force
|
|
||||||
|
|
||||||
# Créer le fichier JAR exécutable
|
|
||||||
Set-Location $outputDir
|
|
||||||
& "$jdkBinPath\jar.exe" cfm $jarFile $manifestPath -C $outputDir .
|
|
||||||
|
|
||||||
# Afficher un message de fin
|
|
||||||
Write-Host "Compilation terminée avec succès. Les fichiers .class et les ressources sont dans le dossier '$outputDir'."
|
|
||||||
Write-Host "Le fichier JAR exécutable a été créé : '$jarFile'."
|
|
||||||
|
|
||||||
cd ..
|
|
71
makefile
71
makefile
@ -1,47 +1,46 @@
|
|||||||
# Variables
|
# Variables
|
||||||
JAVAC = javac
|
|
||||||
JAR = jar
|
|
||||||
SRC_DIR = src
|
SRC_DIR = src
|
||||||
BIN_DIR = bin
|
BIN_DIR = bin
|
||||||
MANIFEST = MANIFEST.MF
|
RES_DIR = $(SRC_DIR)/com/charpentierbalocchi/dorfjavatik/resources
|
||||||
MAIN_CLASS = com.charpentierbalocchi.dorfjavatik.view.FenetreDemarrage
|
RES_BIN_DIR = $(BIN_DIR)/com/charpentierbalocchi/dorfjavatik/resources
|
||||||
JAR_FILE = DorfJavaTik.jar
|
JAVAC = javac
|
||||||
RESOURCES_DIR = src/com/charpentierbalocchi/dorfjavatik/resources
|
JAVA = java
|
||||||
RESOURCES_BIN_DIR = bin/com/charpentierbalocchi/dorfjavatik/resources
|
JAVADOC = javadoc
|
||||||
|
MAIN = com.charpentierbalocchi.dorfjavatik.view.FenetreDemarrage
|
||||||
|
|
||||||
# Règles
|
# Compilation flags
|
||||||
.PHONY: all clean jar run
|
JFLAGS = -d $(BIN_DIR) -encoding UTF-8 -sourcepath $(SRC_DIR)
|
||||||
|
|
||||||
all: classes
|
# Default rule
|
||||||
|
all: clean compile copy-resources
|
||||||
|
|
||||||
# Compilation des fichiers .class
|
# Rule to compile the java files
|
||||||
classes:
|
compile:
|
||||||
@echo "Compilation des fichiers .java en .class..."
|
@echo "Compilation des fichiers source java..."
|
||||||
@mkdir -p $(BIN_DIR)
|
@mkdir -p $(BIN_DIR)
|
||||||
$(JAVAC) -d $(BIN_DIR) -encoding UTF-8 $(shell find $(SRC_DIR) -name "*.java")
|
@$(JAVAC) $(JFLAGS) $(SRC_DIR)/com/charpentierbalocchi/dorfjavatik/controller/*.java
|
||||||
@echo "Compilation terminée."
|
@$(JAVAC) $(JFLAGS) $(SRC_DIR)/com/charpentierbalocchi/dorfjavatik/model/*.java
|
||||||
|
@$(JAVAC) $(JFLAGS) $(SRC_DIR)/com/charpentierbalocchi/dorfjavatik/util/*.java
|
||||||
|
@$(JAVAC) $(JFLAGS) $(SRC_DIR)/com/charpentierbalocchi/dorfjavatik/view/*.java
|
||||||
|
|
||||||
# Création du fichier JAR
|
# Rule to copy resources
|
||||||
jar: classes
|
copy-resources:
|
||||||
@echo "Copie des ressources..."
|
@echo "Copying resources..."
|
||||||
@mkdir -p $(RESOURCES_BIN_DIR)
|
@cp -r $(RES_DIR) $(RES_BIN_DIR)
|
||||||
@cp -r $(RESOURCES_DIR)/* $(RESOURCES_BIN_DIR)
|
|
||||||
@echo "Création du fichier JAR..."
|
|
||||||
$(JAR) cfm $(JAR_FILE) $(MANIFEST) -C $(BIN_DIR) .
|
|
||||||
@echo "Fichier JAR créé : $(JAR_FILE)"
|
|
||||||
|
|
||||||
# Nettoyage des fichiers compilés et du JAR
|
# Rule to run the application
|
||||||
|
run: compile copy-resources
|
||||||
|
@echo "Lancement du jeu..."
|
||||||
|
@$(JAVA) -cp $(BIN_DIR) $(MAIN)
|
||||||
|
|
||||||
|
# Rule to generate Javadoc
|
||||||
|
javadoc:
|
||||||
|
@echo "Generating Javadoc..."
|
||||||
|
@$(JAVADOC) -d $(BIN_DIR)/docs -sourcepath $(SRC_DIR) -subpackages com.charpentierbalocchi.dorfjavatik
|
||||||
|
|
||||||
|
# Rule to clean the project
|
||||||
clean:
|
clean:
|
||||||
@echo "Nettoyage des fichiers compilés..."
|
@echo "Nettoyage en cours..."
|
||||||
@rm -rf $(BIN_DIR)/*
|
@rm -rf $(BIN_DIR)
|
||||||
@rm -f $(JAR_FILE)
|
|
||||||
@echo "Nettoyage terminé."
|
|
||||||
|
|
||||||
# Exécution du fichier JAR
|
.PHONY: all compile run javadoc clean copy-resources
|
||||||
run: jar
|
|
||||||
@echo "Exécution du fichier JAR..."
|
|
||||||
@java -jar $(JAR_FILE)
|
|
||||||
|
|
||||||
# Crée le fichier MANIFEST.MF avec la classe principale
|
|
||||||
manifest:
|
|
||||||
@echo "Main-Class: $(MAIN_CLASS)" > $(MANIFEST)
|
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
package com.charpentierbalocchi.dorfjavatik.main;
|
|
||||||
|
|
||||||
import com.charpentierbalocchi.dorfjavatik.view.FenetreDemarrage;
|
|
||||||
|
|
||||||
public class DorfJavaTik {
|
|
||||||
public static void main(String[] args) {
|
|
||||||
javax.swing.SwingUtilities.invokeLater(new Runnable() {
|
|
||||||
public void run() {
|
|
||||||
new FenetreDemarrage();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -13,6 +13,7 @@ public class FenetreDemarrage extends JFrame {
|
|||||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
setSize(400, 200);
|
setSize(400, 200);
|
||||||
setLocationRelativeTo(null); // Centre la fenêtre sur l'écran
|
setLocationRelativeTo(null); // Centre la fenêtre sur l'écran
|
||||||
|
setResizable(false); // Empêche le redimensionnement de la fenêtre
|
||||||
setVisible(true);
|
setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -21,18 +22,14 @@ public class FenetreDemarrage extends JFrame {
|
|||||||
JPanel panelPrincipal = new JPanel(new BorderLayout());
|
JPanel panelPrincipal = new JPanel(new BorderLayout());
|
||||||
JLabel label = new JLabel("Entrez la taille de la grille (1-15):");
|
JLabel label = new JLabel("Entrez la taille de la grille (1-15):");
|
||||||
JTextField textField = new JTextField();
|
JTextField textField = new JTextField();
|
||||||
textField.setText("5"); // Définir la valeur par défaut à 5
|
textField.setText("5");
|
||||||
JButton button = new JButton("Démarrer la partie");
|
JButton button = new JButton("Démarrer la partie");
|
||||||
|
|
||||||
// Ajout des composants au panneau principal
|
// Ajout des composants au panneau principal
|
||||||
panelPrincipal.add(label, BorderLayout.NORTH);
|
panelPrincipal.add(label, BorderLayout.NORTH);
|
||||||
panelPrincipal.add(textField, BorderLayout.CENTER);
|
panelPrincipal.add(textField, BorderLayout.CENTER);
|
||||||
panelPrincipal.add(button, BorderLayout.SOUTH);
|
panelPrincipal.add(button, BorderLayout.SOUTH);
|
||||||
|
|
||||||
// Ajout du panneau principal à la fenêtre
|
|
||||||
add(panelPrincipal);
|
add(panelPrincipal);
|
||||||
|
|
||||||
// Action listener pour le bouton
|
|
||||||
button.addActionListener(new ActionListener() {
|
button.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
try {
|
try {
|
||||||
|
@ -12,41 +12,37 @@ import java.awt.event.ComponentAdapter;
|
|||||||
import java.awt.event.ComponentEvent;
|
import java.awt.event.ComponentEvent;
|
||||||
|
|
||||||
public class FenetreJeu extends JFrame {
|
public class FenetreJeu extends JFrame {
|
||||||
private int taillePlateau; // Taille du plateau
|
private int taillePlateau;
|
||||||
private TileButton[][] boutons; // Boutons représentant les cases du plateau
|
private TileButton[][] boutons;
|
||||||
private JLabel labelScore; // Label pour afficher le score
|
private JLabel labelScore;
|
||||||
private JLabel labelBiome1; // Label pour afficher le biome 1
|
private JLabel labelBiome1;
|
||||||
private JLabel labelBiome2; // Label pour afficher le biome 2
|
private JLabel labelBiome2;
|
||||||
private JLabel labelBiome3; // Label pour afficher le biome 3
|
private JLabel labelBiome3;
|
||||||
private JLabel labelBiome4; // Label pour afficher le biome 4
|
private JLabel labelBiome4;
|
||||||
private JLabel labelBiome5; // Label pour afficher le biome 5
|
private JLabel labelBiome5;
|
||||||
private Tuile tuileCourante; // La tuile actuellement proposée
|
private Tuile tuileCourante;
|
||||||
private ControleurJeu controleurJeu; // Instance du contrôleur de jeu
|
private ControleurJeu controleurJeu;
|
||||||
private JPanel panelPlateau; // Panneau pour le plateau de jeu
|
private JPanel panelPlateau;
|
||||||
private JPanel panelTuileCourante; // Panneau pour la tuile courante
|
private JPanel panelTuileCourante;
|
||||||
private MusicPlayer musicPlayer; // Instance du lecteur de musique
|
private MusicPlayer musicPlayer;
|
||||||
|
|
||||||
public FenetreJeu(int taillePlateau) {
|
public FenetreJeu(int taillePlateau) {
|
||||||
super("DorfJavaTik, par Juliette et Loris"); // Titre de la fenêtre
|
super("DorfJavaTik, par Juliette et Loris");
|
||||||
this.taillePlateau = taillePlateau;
|
this.taillePlateau = taillePlateau;
|
||||||
initUI();
|
initUI();
|
||||||
this.controleurJeu = new ControleurJeu(this, taillePlateau); // Initialiser le contrôleur après la configuration
|
this.controleurJeu = new ControleurJeu(this, taillePlateau);
|
||||||
// de l'interface
|
controleurJeu.demarrerJeu();
|
||||||
controleurJeu.demarrerJeu(); // Démarrer le jeu après l'initialisation
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Ferme l'application à la fermeture de la fenêtre
|
setSize(1300, 1000);
|
||||||
setSize(1300, 1000); // Fixe la taille de la fenêtre à 1300 x 1000
|
setResizable(false);
|
||||||
setLocationRelativeTo(null); // Centre la fenêtre sur l'écran
|
setLocationRelativeTo(null);
|
||||||
setVisible(true); // Rendre la fenêtre visible
|
setVisible(true);
|
||||||
// Démarrer la musique de fond
|
|
||||||
musicPlayer = new MusicPlayer("/com/charpentierbalocchi/dorfjavatik/resources/background.wav");
|
musicPlayer = new MusicPlayer("/com/charpentierbalocchi/dorfjavatik/resources/background.wav");
|
||||||
musicPlayer.play();
|
musicPlayer.play();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initUI() {
|
private void initUI() {
|
||||||
// Panel principal avec BorderLayout
|
|
||||||
JPanel panelPrincipal = new JPanel(new BorderLayout());
|
JPanel panelPrincipal = new JPanel(new BorderLayout());
|
||||||
|
|
||||||
// Panel pour le plateau de jeu sur la droite
|
|
||||||
panelPlateau = new JPanel(new GridLayout(taillePlateau, taillePlateau));
|
panelPlateau = new JPanel(new GridLayout(taillePlateau, taillePlateau));
|
||||||
boutons = new TileButton[taillePlateau][taillePlateau];
|
boutons = new TileButton[taillePlateau][taillePlateau];
|
||||||
for (int i = 0; i < taillePlateau; i++) {
|
for (int i = 0; i < taillePlateau; i++) {
|
||||||
@ -63,9 +59,6 @@ public class FenetreJeu extends JFrame {
|
|||||||
panelPlateau.add(bouton);
|
panelPlateau.add(bouton);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Panel pour afficher la tuile courante et le score sur la gauche, centré
|
|
||||||
// verticalement
|
|
||||||
JPanel panelGauche = new JPanel();
|
JPanel panelGauche = new JPanel();
|
||||||
panelGauche.setLayout(new BoxLayout(panelGauche, BoxLayout.Y_AXIS));
|
panelGauche.setLayout(new BoxLayout(panelGauche, BoxLayout.Y_AXIS));
|
||||||
panelGauche.setBorder(BorderFactory.createEmptyBorder(20, 60, 20, 60));
|
panelGauche.setBorder(BorderFactory.createEmptyBorder(20, 60, 20, 60));
|
||||||
@ -125,25 +118,20 @@ public class FenetreJeu extends JFrame {
|
|||||||
|
|
||||||
panelGauche.add(Box.createVerticalGlue());
|
panelGauche.add(Box.createVerticalGlue());
|
||||||
panelGauche.add(labelScore);
|
panelGauche.add(labelScore);
|
||||||
panelGauche.add(Box.createVerticalStrut(20)); // Espace entre les composants
|
panelGauche.add(Box.createVerticalStrut(20));
|
||||||
panelGauche.add(panelTuileCourante);
|
panelGauche.add(panelTuileCourante);
|
||||||
panelGauche.add(Box.createVerticalStrut(20));
|
panelGauche.add(Box.createVerticalStrut(20));
|
||||||
panelGauche.add(boutonRecommencer);
|
panelGauche.add(boutonRecommencer);
|
||||||
panelGauche.add(boutonQuitter);
|
panelGauche.add(boutonQuitter);
|
||||||
panelGauche.add(Box.createVerticalGlue());
|
panelGauche.add(Box.createVerticalGlue());
|
||||||
|
|
||||||
panelGauche.add(labelBiome1);
|
panelGauche.add(labelBiome1);
|
||||||
panelGauche.add(labelBiome2);
|
panelGauche.add(labelBiome2);
|
||||||
panelGauche.add(labelBiome3);
|
panelGauche.add(labelBiome3);
|
||||||
panelGauche.add(labelBiome4);
|
panelGauche.add(labelBiome4);
|
||||||
panelGauche.add(labelBiome5);
|
panelGauche.add(labelBiome5);
|
||||||
|
|
||||||
panelPrincipal.add(panelGauche, BorderLayout.WEST);
|
panelPrincipal.add(panelGauche, BorderLayout.WEST);
|
||||||
panelPrincipal.add(panelPlateau, BorderLayout.CENTER);
|
panelPrincipal.add(panelPlateau, BorderLayout.CENTER);
|
||||||
|
|
||||||
add(panelPrincipal);
|
add(panelPrincipal);
|
||||||
|
|
||||||
// Ajouter un écouteur pour garantir que le panneau du plateau reste un carré
|
|
||||||
addComponentListener(new ComponentAdapter() {
|
addComponentListener(new ComponentAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public void componentResized(ComponentEvent e) {
|
public void componentResized(ComponentEvent e) {
|
||||||
@ -155,7 +143,6 @@ public class FenetreJeu extends JFrame {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Méthode pour dessiner les biomes sur un bouton
|
|
||||||
private void dessinerTuile(Graphics g, Tuile tuile, int width, int height) {
|
private void dessinerTuile(Graphics g, Tuile tuile, int width, int height) {
|
||||||
Graphics2D g2d = (Graphics2D) g.create();
|
Graphics2D g2d = (Graphics2D) g.create();
|
||||||
int halfWidth = width / 2;
|
int halfWidth = width / 2;
|
||||||
@ -188,7 +175,6 @@ public class FenetreJeu extends JFrame {
|
|||||||
g2d.dispose();
|
g2d.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Méthode pour mettre à jour le plateau après placement d'une tuile
|
|
||||||
public void updateBoard(int x, int y, Tuile tuile) {
|
public void updateBoard(int x, int y, Tuile tuile) {
|
||||||
TileButton bouton = boutons[x][y];
|
TileButton bouton = boutons[x][y];
|
||||||
bouton.setTuile(tuile); // Mettre à jour la tuile sur le bouton
|
bouton.setTuile(tuile); // Mettre à jour la tuile sur le bouton
|
||||||
|
Loading…
Reference in New Issue
Block a user