package com.example.boidelov3.data; import android.os.Parcel; import android.os.Parcelable; /** * Classe pour suivre les statistiques d'un joueur pendant une partie. * *

Cette classe est Parcelable pour pouvoir être passée entre les activités. * Elle tracke deux types de statistiques :

* * *

Exemple d'utilisation :

*
{@code
 * PlayerStats stats = new PlayerStats("Alice");
 * stats.addGorgeesBuves(5);
 * stats.addGorgeesDistribuees(3);
 * int total = stats.getTotalGorgees(); // 8
 * }
* *

SECURITY NOTE:

* Cette classe stocke des statistiques de jeu (gorgées, scores) qui ne sont PAS * considérées comme des données sensibles. Aucun chiffrement n'est nécessaire. * * Si cette classe était étendue pour stocker des données personnelles (noms réels, * emails, etc.), il faudrait utiliser : * */ public class PlayerStats implements Parcelable { private String playerName; private int gorgeesBuves; // Nombre de gorgées bues par ce joueur private int gorgeesDistribuees; // Nombre de gorgées distribuées par ce joueur /** * Crée les statistiques pour un joueur. * Initialise les compteurs à zéro. * * @param playerName Le nom du joueur */ public PlayerStats(String playerName) { this.playerName = playerName; this.gorgeesBuves = 0; this.gorgeesDistribuees = 0; } // Constructor for Parcelable protected PlayerStats(Parcel in) { playerName = in.readString(); gorgeesBuves = in.readInt(); gorgeesDistribuees = in.readInt(); } public static final Creator CREATOR = new Creator() { @Override public PlayerStats createFromParcel(Parcel in) { return new PlayerStats(in); } @Override public PlayerStats[] newArray(int size) { return new PlayerStats[size]; } }; /** * Retourne le nom du joueur. * @return Le nom du joueur */ public String getPlayerName() { return playerName; } /** * Retourne le nombre de gorgées bues par ce joueur. * @return Le nombre de gorgées bues */ public int getGorgeesBuves() { return gorgeesBuves; } /** * Retourne le nombre de gorgées distribuées par ce joueur. * @return Le nombre de gorgées distribuées */ public int getGorgeesDistribuees() { return gorgeesDistribuees; } /** * Ajoute des gorgées bues au total du joueur. * * @param count Le nombre de gorgées à ajouter (peut être négatif) */ public void addGorgeesBuves(int count) { this.gorgeesBuves += count; } /** * Ajoute des gorgées distribuées au total du joueur. * * @param count Le nombre de gorgées à ajouter (peut être négatif) */ public void addGorgeesDistribuees(int count) { this.gorgeesDistribuees += count; } /** * Retourne le total des gorgées (buves + distribuées). * * @return La somme des gorgées bues et distribuées */ public int getTotalGorgees() { return gorgeesBuves + gorgeesDistribuees; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(playerName); dest.writeInt(gorgeesBuves); dest.writeInt(gorgeesDistribuees); } }