Aller au contenu principal

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:

  1. 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
  2. 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)
  3. 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.txt pour le HighScore (format: nom,nombreDeCoup - exemple: Marie,15)
    • partie.csv pour la sauvegarde de partie en cours (effacer uniquement quand la partie se termine)
  • Au démarrage, vérifiez si partie.csv existe 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.csv quand une partie se termine (victoire ou défaite), jamais highscore.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!!!