From 91906e2afb038c12ba6d027c37be5d3b86e0295b Mon Sep 17 00:00:00 2001 From: Loris BALOCCHI Date: Thu, 6 Jun 2024 20:26:49 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20nettoyage=20et=20fix=20du=20proj?= =?UTF-8?q?et?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 + makefile | 61 ++++++++----------- .../dorfjavatik/main/DorfJavaTik.java | 13 ---- .../dorfjavatik/view/FenetreDemarrage.java | 8 +-- .../dorfjavatik/view/FenetreJeu.java | 59 +++++++----------- 5 files changed, 51 insertions(+), 92 deletions(-) delete mode 100644 src/com/charpentierbalocchi/dorfjavatik/main/DorfJavaTik.java diff --git a/README.md b/README.md index ad3879c..30fdaaf 100644 --- a/README.md +++ b/README.md @@ -10,3 +10,5 @@ Charpentier Juliette [°v°] /[ ]\ | | + +javac -d output ./src/com/charpentierbalocchi/dorfjavatik diff --git a/makefile b/makefile index 7ac4129..0c619d7 100644 --- a/makefile +++ b/makefile @@ -1,47 +1,36 @@ # Variables -JAVAC = javac -JAR = jar SRC_DIR = src BIN_DIR = bin -MANIFEST = MANIFEST.MF -MAIN_CLASS = com.charpentierbalocchi.dorfjavatik.view.FenetreDemarrage -JAR_FILE = DorfJavaTik.jar -RESOURCES_DIR = src/com/charpentierbalocchi/dorfjavatik/resources -RESOURCES_BIN_DIR = bin/com/charpentierbalocchi/dorfjavatik/resources +JAVAC = javac +JAVA = java +JAVADOC = javadoc +MAIN = com.charpentierbalocchi.dorfjavatik.view.FenetreDemarrage -# Règles -.PHONY: all clean jar run +# Compilation flags +JFLAGS = -d $(BIN_DIR) -sourcepath $(SRC_DIR) -all: classes +# Default rule +all: compile -# Compilation des fichiers .class -classes: - @echo "Compilation des fichiers .java en .class..." +# Rule to compile the java files +compile: + @echo "Compiling Java source files..." @mkdir -p $(BIN_DIR) - $(JAVAC) -d $(BIN_DIR) -encoding UTF-8 $(shell find $(SRC_DIR) -name "*.java") - @echo "Compilation terminée." + @$(JAVAC) $(JFLAGS) $(SRC_DIR)/com/charpentierbalocchi/dorfjavatik/**/*.java -# Création du fichier JAR -jar: classes - @echo "Copie des ressources..." - @mkdir -p $(RESOURCES_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)" +# Rule to run the application +run: compile + @echo "Running the application..." + @$(JAVA) -cp $(BIN_DIR) $(MAIN) -# Nettoyage des fichiers compilés et du JAR +# 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: - @echo "Nettoyage des fichiers compilés..." - @rm -rf $(BIN_DIR)/* - @rm -f $(JAR_FILE) - @echo "Nettoyage terminé." + @echo "Cleaning up..." + @rm -rf $(BIN_DIR) -# Exécution du fichier JAR -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) +.PHONY: all compile run javadoc clean diff --git a/src/com/charpentierbalocchi/dorfjavatik/main/DorfJavaTik.java b/src/com/charpentierbalocchi/dorfjavatik/main/DorfJavaTik.java deleted file mode 100644 index b086989..0000000 --- a/src/com/charpentierbalocchi/dorfjavatik/main/DorfJavaTik.java +++ /dev/null @@ -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(); - } - }); - } -} \ No newline at end of file diff --git a/src/com/charpentierbalocchi/dorfjavatik/view/FenetreDemarrage.java b/src/com/charpentierbalocchi/dorfjavatik/view/FenetreDemarrage.java index 40c2d90..69574eb 100644 --- a/src/com/charpentierbalocchi/dorfjavatik/view/FenetreDemarrage.java +++ b/src/com/charpentierbalocchi/dorfjavatik/view/FenetreDemarrage.java @@ -22,24 +22,20 @@ public class FenetreDemarrage extends JFrame { JPanel panelPrincipal = new JPanel(new BorderLayout()); JLabel label = new JLabel("Entrez la taille de la grille (1-15):"); 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"); // Ajout des composants au panneau principal panelPrincipal.add(label, BorderLayout.NORTH); panelPrincipal.add(textField, BorderLayout.CENTER); panelPrincipal.add(button, BorderLayout.SOUTH); - - // Ajout du panneau principal à la fenêtre add(panelPrincipal); - - // Action listener pour le bouton button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { int taille = Integer.parseInt(textField.getText()); if (taille == 1) { - String gifPath = "/com/charpentierbalocchi/dorfjavatik/resources/image.gif"; + String gifPath = "src/com/charpentierbalocchi/dorfjavatik/resources/image.gif"; ImageIcon gifIcon = new ImageIcon(gifPath); diff --git a/src/com/charpentierbalocchi/dorfjavatik/view/FenetreJeu.java b/src/com/charpentierbalocchi/dorfjavatik/view/FenetreJeu.java index bf2c37a..0c53d2c 100644 --- a/src/com/charpentierbalocchi/dorfjavatik/view/FenetreJeu.java +++ b/src/com/charpentierbalocchi/dorfjavatik/view/FenetreJeu.java @@ -12,42 +12,37 @@ import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; public class FenetreJeu extends JFrame { - private int taillePlateau; // Taille du plateau - private TileButton[][] boutons; // Boutons représentant les cases du plateau - private JLabel labelScore; // Label pour afficher le score - private JLabel labelBiome1; // Label pour afficher le biome 1 - private JLabel labelBiome2; // Label pour afficher le biome 2 - private JLabel labelBiome3; // Label pour afficher le biome 3 - private JLabel labelBiome4; // Label pour afficher le biome 4 - private JLabel labelBiome5; // Label pour afficher le biome 5 - private Tuile tuileCourante; // La tuile actuellement proposée - private ControleurJeu controleurJeu; // Instance du contrôleur de jeu - private JPanel panelPlateau; // Panneau pour le plateau de jeu - private JPanel panelTuileCourante; // Panneau pour la tuile courante - private MusicPlayer musicPlayer; // Instance du lecteur de musique + private int taillePlateau; + private TileButton[][] boutons; + private JLabel labelScore; + private JLabel labelBiome1; + private JLabel labelBiome2; + private JLabel labelBiome3; + private JLabel labelBiome4; + private JLabel labelBiome5; + private Tuile tuileCourante; + private ControleurJeu controleurJeu; + private JPanel panelPlateau; + private JPanel panelTuileCourante; + private MusicPlayer musicPlayer; public FenetreJeu(int taillePlateau) { - super("DorfJavaTik, par Juliette et Loris"); // Titre de la fenêtre + super("DorfJavaTik, par Juliette et Loris"); this.taillePlateau = taillePlateau; initUI(); - this.controleurJeu = new ControleurJeu(this, taillePlateau); // Initialiser le contrôleur après la configuration - // de l'interface - controleurJeu.demarrerJeu(); // Démarrer le jeu après l'initialisation - setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Ferme l'application à la fermeture de la fenêtre - setSize(1300, 1000); // Fixe la taille de la fenêtre à 1300 x 1000 - setResizable(false); // Empêche le redimensionnement de la fenêtre - setLocationRelativeTo(null); // Centre la fenêtre sur l'écran - setVisible(true); // Rendre la fenêtre visible - // Démarrer la musique de fond + this.controleurJeu = new ControleurJeu(this, taillePlateau); + controleurJeu.demarrerJeu(); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setSize(1300, 1000); + setResizable(false); + setLocationRelativeTo(null); + setVisible(true); musicPlayer = new MusicPlayer("/com/charpentierbalocchi/dorfjavatik/resources/background.wav"); musicPlayer.play(); } private void initUI() { - // Panel principal avec BorderLayout JPanel panelPrincipal = new JPanel(new BorderLayout()); - - // Panel pour le plateau de jeu sur la droite panelPlateau = new JPanel(new GridLayout(taillePlateau, taillePlateau)); boutons = new TileButton[taillePlateau][taillePlateau]; for (int i = 0; i < taillePlateau; i++) { @@ -64,9 +59,6 @@ public class FenetreJeu extends JFrame { panelPlateau.add(bouton); } } - - // Panel pour afficher la tuile courante et le score sur la gauche, centré - // verticalement JPanel panelGauche = new JPanel(); panelGauche.setLayout(new BoxLayout(panelGauche, BoxLayout.Y_AXIS)); panelGauche.setBorder(BorderFactory.createEmptyBorder(20, 60, 20, 60)); @@ -126,25 +118,20 @@ public class FenetreJeu extends JFrame { panelGauche.add(Box.createVerticalGlue()); panelGauche.add(labelScore); - panelGauche.add(Box.createVerticalStrut(20)); // Espace entre les composants + panelGauche.add(Box.createVerticalStrut(20)); panelGauche.add(panelTuileCourante); panelGauche.add(Box.createVerticalStrut(20)); panelGauche.add(boutonRecommencer); panelGauche.add(boutonQuitter); panelGauche.add(Box.createVerticalGlue()); - panelGauche.add(labelBiome1); panelGauche.add(labelBiome2); panelGauche.add(labelBiome3); panelGauche.add(labelBiome4); panelGauche.add(labelBiome5); - panelPrincipal.add(panelGauche, BorderLayout.WEST); panelPrincipal.add(panelPlateau, BorderLayout.CENTER); - add(panelPrincipal); - - // Ajouter un écouteur pour garantir que le panneau du plateau reste un carré addComponentListener(new ComponentAdapter() { @Override public void componentResized(ComponentEvent e) { @@ -156,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) { Graphics2D g2d = (Graphics2D) g.create(); int halfWidth = width / 2; @@ -189,7 +175,6 @@ public class FenetreJeu extends JFrame { g2d.dispose(); } - // Méthode pour mettre à jour le plateau après placement d'une tuile public void updateBoard(int x, int y, Tuile tuile) { TileButton bouton = boutons[x][y]; bouton.setTuile(tuile); // Mettre à jour la tuile sur le bouton