Jeu multijoueur en JavaFX connecté à une API PHP (proof of concept) — projet ARCREANE.
Jusqu'à 8 joueurs s'affrontent sur des questions à choix multiples. Une mauvaise réponse ne coûte « que » des points : tous les 3 rounds (checkpoint), le joueur au score le plus faible est éliminé. Dernier survivant = vainqueur.
✨ La difficulté (et les points) montent à chaque round, et chaque joueur dispose
de deux jokers stratégiques par partie : 🎯 50/50 et 💎 points ×2.
En fin de partie : podium animé, confettis et graphe d'évolution des scores.
Un dashboard admin (http://localhost:8080/admin.php?key=admin123) expose
les statistiques du serveur.
🐍 Deuxième jeu inclus : Serpents & Échelles — plateau de 100 cases dessiné sur Canvas, dé lancé côté serveur, tour par tour (lancer automatique si un joueur tarde), échelles et serpents. Choix du jeu à la création d'une partie ; les bots savent jouer aux deux.
| Outil | Version | Vérification |
|---|---|---|
| Java (JDK) | 21 ou + | java -version |
| PHP | 8.1 ou + (avec pdo_sqlite) |
php -v |
| Maven | 3.8 ou + (uniquement pour recompiler) | mvn -version |
Aucune installation de MySQL n'est nécessaire : la base SQLite est créée et remplie automatiquement au premier lancement (6 catégories, 48 questions). Le schéma MySQL équivalent est fourni dans
backend/schema.mysql.sql.
Double-cliquer, dans l'ordre, sur les scripts du dossier demo/ :
demo/1_serveur.bat— démarre l'API surhttp://localhost:8080(laisser ouvert)demo/2_client.bat— ouvre un client de jeu (relancer pour un 2ᵉ joueur sur le même PC)demo/3_bots.bat 2— lance 2 joueurs automatiques qui rejoignent la prochaine partie en lobby- (optionnel)
demo/0_reset_bd.bat— remet la base à zéro avant la démo
Ou en ligne de commande :
# Terminal 1 — serveur API
php -S 0.0.0.0:8080 -t backend/public backend/public/index.php
# Terminal 2 — client de jeu (un par joueur)
java -jar frontend/target/quiz-battle-royale.jar
# Terminal 3 — bots de démonstration (optionnel)
php backend/bin/bot.php --name=Momo --skill=0.8Scénario type : se connecter → créer une partie → les bots (ou d'autres joueurs) la rejoignent → « Lancer la partie » → répondre avant la fin du chrono → podium 🏆
Comptes de démonstration (pré-remplis sur l'écran de connexion) :
demo / demo1234— etdemo2 / demo1234pour un second client humain.
Le serveur écoute déjà sur toutes les interfaces (0.0.0.0). Sur les autres PC,
renseigner http://IP_DU_SERVEUR:8080 dans le champ Serveur API de l'écran de connexion.
cd frontend
mvn package # produit target/quiz-battle-royale.jar (autonome)
mvn javafx:run # ou lancement direct en mode développementphp backend/bin/smoke_test.php # partie complète simulée à 3 joueurs (serveur requis)backend/ API PHP (proof of concept)
public/index.php routeur + endpoints JSON
src/ BD, JWT, logique de jeu
seed/ questions en français
bin/ init BD, bot de démo, tests, avatars
schema.mysql.sql variante MySQL du schéma
frontend/ client JavaFX (Maven)
src/main/java/ écrans Login / Lobby / Jeu, client API
demo/ scripts de lancement pour la soutenance
DOCUMENTATION.md documentation technique complète
RAPPORT.md rapport de projet
CHEATSHEET.md antisèche de soutenance
- 📘 DOCUMENTATION.md — architecture, contrat d'API, schéma BD, composants UI
- 📝 RAPPORT.md — contexte, choix techniques, difficultés, bilan
- 🎤 CHEATSHEET.md — déroulé de la démo et questions/réponses de soutenance
- 🗺 OU-EST-TOUT.md — carte du code : FXML, contrôleurs, tables, liaison Java ↔ PHP
- 🖥 presentation/presentation.pptx — diaporama PowerPoint de soutenance
(généré par
presentation/make_pptx.py; version HTML de secours : presentation.html)