- 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.
Projet Android 2048
Un clone simple du jeu populaire 2048 développé pour Android en utilisant Android Studio et Java.
Objectif
L'objectif principal est d'apprendre les bases du développement Android, y compris :
- La gestion des layouts (GridLayout, ConstraintLayout)
- La gestion des événements tactiles (Swipe)
- La logique de jeu de base
- Le cycle de vie d'une activité Android
- La persistance simple des données (scores)
Étapes Futures
- Mise en place de la structure de base du projet.
- Implémentation de la logique de la grille et de l'ajout de tuiles.
- Implémentation des mouvements des tuiles (Haut, Bas, Gauche, Droite).
- Création de l'interface graphique.
- Liaison de la logique et de l'interface.
- Ajout de fonctionnalités (score, high score, redémarrage, etc.).
Description
Languages
Java
100%