IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Créer un LadderBord (classement des 5 meilleurs joueurs)


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 9
    Par défaut Créer un LadderBord (classement des 5 meilleurs joueurs)
    Bonjour,
    J'ai une petite application Android avec deux activités : une de login et une de jeu.
    J'ai crée une 3ème activité accesible depuis la première avec un bouton "Classement" qui devra afficher le Top 5 des joueurs + leur score.
    J'ai essayé plusieurs choses, j'arrive à récuperer le score+nom du dernier joueur et de l'afficher en position 1 dans le classement,
    mais peut importe ce que j'essaye si je relance une partie avec un autre joueur il prendra la place du 1er et l'ancien sera ecrasé, laissant les
    4 autres spots libres...
    Auriez-vous des pistes ?
    Merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 476
    Par défaut
    Salut,

    Je ne sais pas comment tu sauvegardes le dernier joueur et score, mais au lieu de ne sauvegarder qu'un joueur, tu sauvegardes une liste, ou même un hashmap de <joueur, score> en SharePreferences. En gros, dès qu'un joueur a fini, tu le rajoute dans ce hashmap s'il n'y est pas encore, sinon d'update son score.

    Et sur ta page de Classement, tu tries ce hashmap et t'affiches son contenu (joueur et score)

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 9
    Par défaut
    Citation Envoyé par Turvy Voir le message
    Salut,
    tu sauvegardes une liste, ou même un hashmap de <joueur, score> en SharePreferences
    Bonne idée ! Ducoup j'ai crée ma map, et je lui rajoute à chaque fin de partie le score + nom du joueur précedent,
    Le soucis maintenant c'est comment envoyer/retirer cette map en SharedPreferences ? La commande qui s'y rapproche le plus c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mPreferences.edit().putInt(PlayerName,score)
    Sauf que je ne pense pas qu'un putInt soit viable pour ce genre de cas... y'a t - il une syntaxe particulière pour mettre des HashMap dans les preférences ?
    Merci d'avance

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 476
    Par défaut
    tu transformes ta map en json avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     // 
            String json = new Gson().toJson(map);
    et c'est ce json que tu sauves en sharedPreferences.

    Pour récuperer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Type type = new TypeToken<Map<String, int>>(){}.getType();
            Map<String, int> map = gson.fromJson(json, type);
            for (String key : map.keySet()) {
                Log.v("SCORE", map.get(key));
            }
    il faut importer Gson dans le Gradle.


    Sinon, tu peux créer une mini base de données, ca sera plus long mais p'tet plus propre.

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 9
    Par défaut
    Super je comprend le principe,
    Mon nouveau soucis vient au niveau de la récupération de cette stringMap dans mon autre activité,
    Map<String, int> map = gson.fromJson(json, type);
    içi dans ma seconde activité gson.fromJson(json) est en rouge cannot resolve symbol/method
    Par contre l'import de Gson à bien été effectué car j'arrive bien à stocker ma map transformée en String depuis ma MainActivity...
    Merci de ton aide !

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 476
    Par défaut
    il faut changer gson en new Gson(), ou bien créer une variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Gson gson = new Gson();

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Classement par Equipe sur le total des 3 meilleurs scores
    Par ctsblv dans le forum Access
    Réponses: 10
    Dernier message: 07/12/2010, 13h20
  2. Réponses: 7
    Dernier message: 16/10/2008, 16h11
  3. [MySQL] Classement des joueurs
    Par benjam89 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/08/2007, 00h01
  4. Réponses: 8
    Dernier message: 23/03/2007, 01h14
  5. Pour créer des pdf : meilleur logiciel ?
    Par calogerogigante dans le forum Autres Logiciels
    Réponses: 11
    Dernier message: 22/04/2006, 17h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo