Atelier 9 - Sauvegarder votre atelier 7
Reprenez l'atelier 7 et ajoutez la gestion du meilleur score, la sauvegarde de partie et l'option de quitter en utilisant la programmation orientée objet.
Nouveautés par rapport à l'atelier 7:
-
Gestion du HighScore:
- Le HighScore représente le nombre minimum de coups nécessaires pour trouver le nombre secret
- Afficher le meilleur score actuel (le plus petit nombre d'essais réussi avec le nom du joueur)
- Si l'utilisateur gagne avec moins d'essais que le record actuel:
- Demander le nom du joueur
- Mettre à jour et sauvegarder le HighScore (nom + nombre d'essais)
- Afficher le nom du joueur et le nombre de coups dans les highscores
- Le HighScore persiste entre les sessions
-
Sauvegarde automatique de partie:
- Au démarrage: charger automatiquement une partie en cours si elle existe
- Sauvegarder automatiquement: le nombre secret, le nombre d'essais restants, tous les boutons déjà cliqués
- Format de sauvegarde: CSV (facile à lire et écrire)
- La partie sauvegardée est supprimée lorsqu'une partie se termine (victoire ou défaite)
-
Option de quitter:
- Bouton "Quitter" qui permet d'abandonner la partie en cours
- La partie est automatiquement sauvegardée lors du clic sur "Quitter"
- Au prochain démarrage, la partie reprend exactement où elle s'était arrêtée
Conseils techniques:
- Utilisez le format CSV pour la sauvegarde de partie (ex:
nombreSecret,essaisRestants,bouton1,bouton2,bouton3,...) - Créez deux fichiers distincts :
highscore.txtpour le HighScore (format:nom,nombreDeCoup- exemple:Marie,15)partie.csvpour la sauvegarde de partie en cours (effacer uniquement quand la partie se termine)
- Au démarrage, vérifiez si
partie.csvexiste et chargez-le automatiquement - Lors d'une victoire établissant un nouveau record:
- Afficher une boîte de dialogue pour demander le nom du joueur
- Sauvegarder le nouveau highscore au format
nom,nombreDeCoup - Afficher le nouveau meilleur score avec le nom du joueur
- Supprimez uniquement
partie.csvquand une partie se termine (victoire ou défaite), jamaishighscore.txt - Séparez clairement la logique du jeu de la gestion de l'interface graphique
- Utilisez try-with-resources pour gérer automatiquement la fermeture des fichiers (ex:
try (BufferedWriter writer = new BufferedWriter(...)) { ... })
Vous pouvez coder, amusez-vous bien!!!