- Création de la classe GameStats pour encapsuler les données et la logique des statistiques.
- Implémentation de loadStats() et saveStats() dans GameStats utilisant SharedPreferences.
- Ajout de méthodes dans GameStats pour enregistrer les événements du jeu (startGame, recordMove, recordMerge, recordWin, recordLoss, endGame, updateHighestTile, addPlayTime, setCurrentGameStartTimeMs, setHighestScore).
- Ajout de getters dans GameStats pour l'affichage et de méthodes pour les valeurs calculées (moyennes, pourcentages).
- Déplacement de formatTime() dans GameStats.
- Refactorisation de MainActivity:
- Suppression des champs et méthodes de statistiques individuelles.
- Utilisation d'une instance de GameStats pour gérer les statistiques.
- Mise à jour de handleSwipe, startNewGame, onPause, onResume pour appeler GameStats.
- Mise à jour de updateStatisticsTextViews pour utiliser les getters de GameStats.
- MainActivity gère maintenant le chargement/sauvegarde de l'état sérialisé du jeu et du high score via SharedPreferences, en passant le high score à Game via setHighestScore.
- Refactorisation de Game:
- Suppression de la dépendance au Contexte et SharedPreferences.
- Suppression de la gestion interne du high score (reçoit via setHighestScore).
- Ajout de getBoard() et getHighestTileValue().
- Modification du constructeur et de deserialize pour être indépendants du contexte et du high score.
- Ajout/Mise à jour des commentaires JavaDoc dans les classes modifiées.