diff --git a/src/Compilateur.bat b/src/Compilateur.bat deleted file mode 100644 index 67b919f..0000000 --- a/src/Compilateur.bat +++ /dev/null @@ -1,127 +0,0 @@ -@echo off -setlocal EnableExtensions EnableDelayedExpansion -pushd "%~dp0" - -:: === CONFIGURATION === -set "OUT=out" -set "MAIN_CLASS=Main" :: Si Main est dans un package, ex: monpackage.Main -:: ===================== - -if "%~1"=="" goto :help - -if /I "%~1"=="help" goto :help -if /I "%~1"=="clean" goto :clean -if /I "%~1"=="build" goto :build -if /I "%~1"=="run" goto :run -if /I "%~1"=="count" goto :count -if /I "%~1"=="watch" goto :watch -if /I "%~1"=="purge" goto :purge -if /I "%~1"=="rebuild" goto :rebuild - -goto :help - -:clean - if exist "%OUT%" ( - echo Suppression du dossier "%OUT%"... - rmdir /S /Q "%OUT%" - ) else ( - echo Aucun dossier "%OUT%" a supprimer. - ) - goto :eof - - - -:build - where javac >nul 2>nul || (echo([ERREUR] javac introuvable dans le PATH & goto :eof) - - if not exist "%OUT%" mkdir "%OUT%" - - echo(Creation de la liste des sources... - dir /s /b *.java > "%TEMP%\sources.txt" - - for /f %%I in ('find /c /v "" ^< "%TEMP%\sources.txt"') do set COUNT=%%I - if "%COUNT%"=="0" ( - echo([ERREUR] Aucun fichier .java trouve dans %cd% - del "%TEMP%\sources.txt" >nul 2>nul - goto :eof - ) - - echo(%COUNT% fichiers trouves. Compilation... - javac -d "%OUT%" @"%TEMP%\sources.txt" - set ERR=%ERRORLEVEL% - del "%TEMP%\sources.txt" >nul 2>nul - - if %ERR% EQU 0 ( - echo(Compilation reussie ! - ) else ( - echo([ERREUR] Compilation (code %ERR%) - ) - goto :eof - - - - - -:run - call :build - if %ERR% EQU 0 ( - echo( - echo(Execution de %MAIN_CLASS% ... - java -cp "%OUT%" %MAIN_CLASS% - ) - goto :eof - - -:count - for /f %%I in ('dir /s /b *.java ^| find /c /v ""') do set COUNT=%%I - echo %COUNT% fichiers Java trouves. - - :: Compte le nombre de ligne des fichier java - set /a LIGNES=0 - for /f "delims=" %%F in ('dir /s /b *.java') do ( - for /f %%N in ('type "%%F" ^| find /v /c ""') do set /a LIGNES+=%%N - ) - echo %LIGNES% lignes Java trouvees. - goto :eof - - -:watch - echo Mode surveillance active : recompilation a chaque changement detecte - echo Appuie sur Ctrl+C pour quitter. - set "LASTSTATE=" - :loop - for /f %%A in ('dir /s /b /a-d *.java') do ( - set "CURRENTSTATE=!CURRENTSTATE!%%~tA" - ) - if "!CURRENTSTATE!" NEQ "!LASTSTATE!" ( - set "LASTSTATE=!CURRENTSTATE!" - call :build - ) - set "CURRENTSTATE=" - timeout /t 2 >nul - goto loop - -:purge - echo Suppression des .class hors de "%OUT%"... - for /f "delims=" %%C in ('dir /s /b *.class ^| findstr /vi /c:"\%OUT%\"') do del /q "%%C" - goto :eof - -:rebuild - call :clean - call :purge - call :build - goto :eof - - -:help - echo Usage: build.bat [option] - echo. - echo build - Compile le projet - echo clean - Supprime le dossier de sortie "%OUT%" - echo run - Compile puis lance %MAIN_CLASS% - echo count - Compte le nombre de fichiers Java - echo watch - Recompile automatiquement si un fichier change - echo help - Affiche cette aide - echo purge - Supprime les .class hors de "%OUT%" - echo rebuild - Nettoie, purge et recompile le projet - goto :eof diff --git a/src/Compilateur.sh b/src/Compilateur.sh new file mode 100755 index 0000000..02b5b13 --- /dev/null +++ b/src/Compilateur.sh @@ -0,0 +1,135 @@ +#!/usr/bin/env bash + +# ====================== +# CONFIGURATION +# ====================== +OUT="out" +MAIN_CLASS="Main" # Si Main est dans un package, ex: monpackage.Main +# ====================== + +# Se placer dans le dossier du script +cd "$(dirname "$0")" + +cmd="${1:-help}" + + +clean() { + if [ -d "$OUT" ]; then + echo "Suppression du dossier '$OUT'..." + rm -rf "$OUT" + else + echo "Aucun dossier '$OUT' à supprimer." + fi +} + + +build() { + if ! command -v javac >/dev/null 2>&1; then + echo "[ERREUR] javac introuvable dans le PATH" + return 1 + fi + + mkdir -p "$OUT" + + echo "Création de la liste des sources..." + mapfile -t sources < <(find . -type f -name "*.java") + + COUNT="${#sources[@]}" + if [ "$COUNT" -eq 0 ]; then + echo "[ERREUR] Aucun fichier .java trouvé dans $PWD" + return 1 + fi + + echo "$COUNT fichiers trouvés. Compilation..." + + javac -d "$OUT" "${sources[@]}" + ERR=$? + + if [ "$ERR" -eq 0 ]; then + echo "Compilation réussie !" + else + echo "[ERREUR] Compilation (code $ERR)" + fi + + return $ERR +} + + +run() { + build + if [ $? -eq 0 ]; then + echo + echo "Exécution de $MAIN_CLASS ..." + java -cp "$OUT" "$MAIN_CLASS" + fi +} + + +count() { + COUNT=$(find . -type f -name "*.java" | wc -l) + echo "$COUNT fichiers Java trouvés." + + LIGNES=0 + while IFS= read -r file; do + NB=$(wc -l < "$file") + LIGNES=$((LIGNES + NB)) + done < <(find . -type f -name "*.java") + + echo "$LIGNES lignes Java trouvées." +} + + +watch() { + echo "Mode surveillance activé : recompilation à chaque changement..." + echo "Ctrl+C pour quitter." + + LASTSTATE="" + + while true; do + CURRENTSTATE=$(find . -type f -name "*.java" -exec stat -c "%n %Y" {} \;) + if [ "$CURRENTSTATE" != "$LASTSTATE" ]; then + LASTSTATE="$CURRENTSTATE" + build + fi + sleep 2 + done +} + + +purge() { + echo "Suppression des .class hors de '$OUT'..." + find . -type f -name "*.class" ! -path "./$OUT/*" -delete +} + + +rebuild() { + clean + purge + build +} + + +help() { + echo "Usage: ./build.sh [option]" + echo + echo " build - Compile le projet" + echo " clean - Supprime le dossier de sortie '$OUT'" + echo " run - Compile puis lance $MAIN_CLASS" + echo " count - Compte les fichiers et les lignes Java" + echo " watch - Recompile automatiquement si un fichier change" + echo " purge - Supprime les .class hors de '$OUT'" + echo " rebuild - Nettoie, purge et recompile le projet" + echo " help - Affiche cette aide" +} + + +case "$cmd" in + clean) clean ;; + build) build ;; + run) run ;; + count) count ;; + watch) watch ;; + purge) purge ;; + rebuild) rebuild ;; + help|*) help ;; +esac diff --git a/src/Main.java b/src/Main.java index ebe86d7..7eb84ae 100644 --- a/src/Main.java +++ b/src/Main.java @@ -4,11 +4,9 @@ import controleur.ControleurReseau; import modele.Couleur; import modele.ModeDeJeu; import modele.Partie; -import modele.joueur.Joueur; -import modele.joueur.JoueurHumain; -import vue.Vue; -import vue.VueConsole; -import vue.VueGraphiqueSwing; +import modele.joueur.*; +import vue.*; + public class Main { public static void main(String[] args) { @@ -21,7 +19,7 @@ public class Main { int choixMode = 1; // à remplacer par Scanner plus tard int choixAffichage = 3; // 1: Console, 2: JavaFX, 3: Swing - String stylePlateau = "BOIS_CLAIR"; // Style du plateau, à remplacer par une entrée utilisateur + String stylePlateau = "RETRO_BOIS"; // Style du plateau, à remplacer par une entrée utilisateur // === Choix du mode de jeu === switch (choixMode) { @@ -62,11 +60,19 @@ public class Main { } // Réaffecter la vue si les joueurs sont humains - if (joueurBlanc instanceof JoueurHumain jb) { + /*if (joueurBlanc instanceof JoueurHumain jb) { jb.setVue(vue); } if (joueurNoir instanceof JoueurHumain jn) { jn.setVue(vue); + }*/ + if (joueurBlanc instanceof JoueurHumain) { + JoueurHumain jb= (JoueurHumain) joueurBlanc; + jb.setVue(vue); + } + if (joueurNoir instanceof JoueurHumain) { + JoueurHumain jn= (JoueurHumain) joueurNoir; + jn.setVue(vue); } // === Lancement de la partie === diff --git a/src/out/Main.class b/src/out/Main.class index d217969..12419fd 100644 Binary files a/src/out/Main.class and b/src/out/Main.class differ diff --git a/src/out/controleur/ControleurPartie.class b/src/out/controleur/ControleurPartie.class index 2e05636..5adbcec 100644 Binary files a/src/out/controleur/ControleurPartie.class and b/src/out/controleur/ControleurPartie.class differ diff --git a/src/out/controleur/ControleurReseau.class b/src/out/controleur/ControleurReseau.class index 0a6b980..2f6c83e 100644 Binary files a/src/out/controleur/ControleurReseau.class and b/src/out/controleur/ControleurReseau.class differ diff --git a/src/out/modele/Case.class b/src/out/modele/Case.class index 60bc695..b5e83cf 100644 Binary files a/src/out/modele/Case.class and b/src/out/modele/Case.class differ diff --git a/src/out/modele/Couleur.class b/src/out/modele/Couleur.class index b0ae2de..4b4f20e 100644 Binary files a/src/out/modele/Couleur.class and b/src/out/modele/Couleur.class differ diff --git a/src/out/modele/Coup.class b/src/out/modele/Coup.class index cc9adb6..e65a341 100644 Binary files a/src/out/modele/Coup.class and b/src/out/modele/Coup.class differ diff --git a/src/out/modele/ModeDeJeu.class b/src/out/modele/ModeDeJeu.class index 59e0b0f..ce88eae 100644 Binary files a/src/out/modele/ModeDeJeu.class and b/src/out/modele/ModeDeJeu.class differ diff --git a/src/out/modele/Partie.class b/src/out/modele/Partie.class index f8fd330..ef75cb2 100644 Binary files a/src/out/modele/Partie.class and b/src/out/modele/Partie.class differ diff --git a/src/out/modele/Plateau.class b/src/out/modele/Plateau.class index 34ae0db..669a1f2 100644 Binary files a/src/out/modele/Plateau.class and b/src/out/modele/Plateau.class differ diff --git a/src/out/modele/joueur/IA.class b/src/out/modele/joueur/IA.class index 4f92ad2..62c01f9 100644 Binary files a/src/out/modele/joueur/IA.class and b/src/out/modele/joueur/IA.class differ diff --git a/src/out/modele/joueur/Joueur.class b/src/out/modele/joueur/Joueur.class index edeffc9..4ac43bf 100644 Binary files a/src/out/modele/joueur/Joueur.class and b/src/out/modele/joueur/Joueur.class differ diff --git a/src/out/modele/joueur/JoueurHumain.class b/src/out/modele/joueur/JoueurHumain.class index b763a8b..41ccc2c 100644 Binary files a/src/out/modele/joueur/JoueurHumain.class and b/src/out/modele/joueur/JoueurHumain.class differ diff --git a/src/out/modele/joueur/JoueurIA.class b/src/out/modele/joueur/JoueurIA.class index 6ac92d0..b017ee6 100644 Binary files a/src/out/modele/joueur/JoueurIA.class and b/src/out/modele/joueur/JoueurIA.class differ diff --git a/src/out/modele/piece/Cavalier.class b/src/out/modele/piece/Cavalier.class index c6896f9..827494a 100644 Binary files a/src/out/modele/piece/Cavalier.class and b/src/out/modele/piece/Cavalier.class differ diff --git a/src/out/modele/piece/Fou.class b/src/out/modele/piece/Fou.class index c279df4..78b9280 100644 Binary files a/src/out/modele/piece/Fou.class and b/src/out/modele/piece/Fou.class differ diff --git a/src/out/modele/piece/Piece.class b/src/out/modele/piece/Piece.class index c9c929b..448e7e0 100644 Binary files a/src/out/modele/piece/Piece.class and b/src/out/modele/piece/Piece.class differ diff --git a/src/out/modele/piece/Pion.class b/src/out/modele/piece/Pion.class index 3e454d6..7d2dacf 100644 Binary files a/src/out/modele/piece/Pion.class and b/src/out/modele/piece/Pion.class differ diff --git a/src/out/modele/piece/Reine.class b/src/out/modele/piece/Reine.class index 05f711f..e9e5868 100644 Binary files a/src/out/modele/piece/Reine.class and b/src/out/modele/piece/Reine.class differ diff --git a/src/out/modele/piece/Roi.class b/src/out/modele/piece/Roi.class index 16bd726..b93aa23 100644 Binary files a/src/out/modele/piece/Roi.class and b/src/out/modele/piece/Roi.class differ diff --git a/src/out/modele/piece/Tour.class b/src/out/modele/piece/Tour.class index d3b58d5..d2a1042 100644 Binary files a/src/out/modele/piece/Tour.class and b/src/out/modele/piece/Tour.class differ diff --git a/src/out/reseau/Client$1.class b/src/out/reseau/Client$1.class index 5dd82d0..fc0d004 100644 Binary files a/src/out/reseau/Client$1.class and b/src/out/reseau/Client$1.class differ diff --git a/src/out/reseau/Client.class b/src/out/reseau/Client.class index 999bfec..38aec79 100644 Binary files a/src/out/reseau/Client.class and b/src/out/reseau/Client.class differ diff --git a/src/out/reseau/MessageJeu.class b/src/out/reseau/MessageJeu.class index 8c7de53..82f94b1 100644 Binary files a/src/out/reseau/MessageJeu.class and b/src/out/reseau/MessageJeu.class differ diff --git a/src/out/reseau/Serveur$1.class b/src/out/reseau/Serveur$1.class index f19b423..12367b6 100644 Binary files a/src/out/reseau/Serveur$1.class and b/src/out/reseau/Serveur$1.class differ diff --git a/src/out/reseau/Serveur.class b/src/out/reseau/Serveur.class index 25319f4..616a6d7 100644 Binary files a/src/out/reseau/Serveur.class and b/src/out/reseau/Serveur.class differ diff --git a/src/out/reseau/TypeMessage.class b/src/out/reseau/TypeMessage.class index 00687eb..84d2cb4 100644 Binary files a/src/out/reseau/TypeMessage.class and b/src/out/reseau/TypeMessage.class differ diff --git a/src/out/vue/ButtonEnvoyerMessageListener.class b/src/out/vue/ButtonEnvoyerMessageListener.class index 0ebc8b1..edc5607 100644 Binary files a/src/out/vue/ButtonEnvoyerMessageListener.class and b/src/out/vue/ButtonEnvoyerMessageListener.class differ diff --git a/src/out/vue/CaseSwingUI.class b/src/out/vue/CaseSwingUI.class index dba6549..30a6511 100644 Binary files a/src/out/vue/CaseSwingUI.class and b/src/out/vue/CaseSwingUI.class differ diff --git a/src/out/vue/PlateauSwingUI.class b/src/out/vue/PlateauSwingUI.class index 9d9b902..db4c60d 100644 Binary files a/src/out/vue/PlateauSwingUI.class and b/src/out/vue/PlateauSwingUI.class differ diff --git a/src/out/vue/ToucheEntrerEnvoyerMessageListener.class b/src/out/vue/ToucheEntrerEnvoyerMessageListener.class index 456ff2a..99b9ea9 100644 Binary files a/src/out/vue/ToucheEntrerEnvoyerMessageListener.class and b/src/out/vue/ToucheEntrerEnvoyerMessageListener.class differ diff --git a/src/out/vue/Vue.class b/src/out/vue/Vue.class index 28ab326..9bb79a1 100644 Binary files a/src/out/vue/Vue.class and b/src/out/vue/Vue.class differ diff --git a/src/out/vue/VueConsole.class b/src/out/vue/VueConsole.class index 09a8f4d..1756b4e 100644 Binary files a/src/out/vue/VueConsole.class and b/src/out/vue/VueConsole.class differ diff --git a/src/out/vue/VueGraphiqueSwing$1.class b/src/out/vue/VueGraphiqueSwing$1.class index 44f243c..9aaa3dc 100644 Binary files a/src/out/vue/VueGraphiqueSwing$1.class and b/src/out/vue/VueGraphiqueSwing$1.class differ diff --git a/src/out/vue/VueGraphiqueSwing.class b/src/out/vue/VueGraphiqueSwing.class index 5a9cac3..a60ffa5 100644 Binary files a/src/out/vue/VueGraphiqueSwing.class and b/src/out/vue/VueGraphiqueSwing.class differ diff --git a/src/vue/CaseSwingUI.java b/src/vue/CaseSwingUI.java index 536c2c6..09c4c21 100644 --- a/src/vue/CaseSwingUI.java +++ b/src/vue/CaseSwingUI.java @@ -32,42 +32,47 @@ public class CaseSwingUI extends JPanel implements MouseListener{ public CaseSwingUI(String style, int ligne, int colonne, Case caseModele) { switch (style) { - case "RETRO_BOIS" -> { + case "RETRO_BOIS" : // Style Bois rétro : couleurCaseClaire = new Color(222, 184, 135); // Burlywood (bois clair rétro) couleurCaseFoncee = new Color(139, 69, 19); // SaddleBrown (bois foncé rétro) couleurCaseSelection = new Color(205, 133, 63); // Peru (orange/brun vieilli) - } - case "METAL_FUTURISTE" -> { + + case "METAL_FUTURISTE" : // Style métallique Futuriste couleurCaseClaire = new Color(192, 192, 192); // Silver couleurCaseFoncee = new Color(105, 105, 105); // DimGray couleurCaseSelection = new Color(0, 255, 255); // Cyan flashy (effet néon) - } - case "BOIS_CLAIR" -> { + + case "BOIS_CLAIR" : // Style Bois clair couleurCaseClaire = new Color(240, 218, 181); // Beige clair couleurCaseFoncee = new Color(181, 136, 99); // Marron clair couleurCaseSelection = new Color(209, 83, 71); // Rouge-orangé couleurCasePrecedente = new Color(255, 112, 99); // Rouge clair - } - case "JAUNE_CHALEUREUX" -> { + + case "JAUNE_CHALEUREUX" : // Style Jaune Chaleureux couleurCaseClaire = new Color(253, 231, 76); // Jaune vif couleurCaseFoncee = new Color(227, 101, 91); // Rouge doux couleurCaseSelection = new Color(248, 161, 87); // Orange doux - } - case "VINTAGE_PASTEL" -> { + + case "VINTAGE_PASTEL" : // Style vintage pastel couleurCaseClaire = new Color(246, 229, 189); // Beige pastel couleurCaseFoncee = new Color(249, 125, 125); // Rose brique clair couleurCaseSelection = new Color(200, 90, 90); // Rouge passé - } - default -> { - couleurCaseClaire = new Color(255, 255, 255); // Blanc + + default : + /*couleurCaseClaire = new Color(255, 255, 255); // Blanc couleurCaseFoncee = new Color(200, 200, 200); // Gris - couleurCaseSelection = new Color(100, 100, 100); // Gris foncé - } + couleurCaseSelection = new Color(100, 100, 100); // Gris foncés*/ + couleurCaseClaire = new Color(240, 218, 181); // Beige clair + couleurCaseFoncee = new Color(181, 136, 99); // Marron clair + couleurCaseSelection = new Color(209, 83, 71); // Rouge-orangé + couleurCasePrecedente = new Color(255, 112, 99); // Rouge clair + System.out.println(style); + } @@ -104,7 +109,8 @@ public class CaseSwingUI extends JPanel implements MouseListener{ while(parent != null && !(parent instanceof PlateauSwingUI)) { parent = parent.getParent(); } - if (parent instanceof PlateauSwingUI plateau) { + if (parent instanceof PlateauSwingUI ) { + PlateauSwingUI plateau = (PlateauSwingUI) parent; plateau.selectionnerCase(this); } //System.out.println("Case cliquée : " + ligne + ", " + colonne); diff --git a/src/vue/VueGraphiqueSwing.java b/src/vue/VueGraphiqueSwing.java index 4b8f3cb..30601cd 100644 --- a/src/vue/VueGraphiqueSwing.java +++ b/src/vue/VueGraphiqueSwing.java @@ -115,27 +115,27 @@ public class VueGraphiqueSwing implements Vue { // Couleur selon auteur Color bg, fg, border; switch (auteur.toLowerCase()) { - case "moi" -> { + case "moi" : { bg = new Color(200, 255, 200); // vert clair fg = Color.BLACK; border = Color.GREEN.darker(); } - case "serveurbleu" -> { + case "serveurbleu" : { bg = new Color(220, 235, 255); // bleu clair fg = Color.BLUE.darker(); border = Color.BLUE; } - case "serveurrouge" -> { + case "serveurrouge" : { bg = new Color(255, 220, 220); // rouge clair fg = Color.RED.darker(); border = Color.RED; } - case "serveurorange" -> { + case "serveurorange" : { bg = new Color(255, 220, 220); // orange clair fg = Color.ORANGE.darker(); border = Color.ORANGE; } - default -> { // adversaire + default : { // adversaire bg = new Color(255, 220, 220); // rouge clair fg = Color.RED.darker(); border = Color.RED;