Tableau de meilleurs score

Fermé
zackychan - 31 mars 2018 à 00:03
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 3 avril 2018 à 18:07
Bonjour,
Je suis en école d'ingénieur, et nous devons programmer un jeu en c. Bref le jeu fonctionne mais deux soucis me freine dans mon avancée :
- La sauvegarde de notre avancée et pouvoir recharger la partie en cours
- Le classements des meilleurs scores dans un fichier texte. En effet j'ai un systeme de points et j'arrive seulement a afficher le score de la partie précédente en ecrivant et en lisant ce fichier texte.
Sur ce toute aide est bonne a prendre, je tiens à préciser que mon niveau est assez bancal en c approfondi.

Merci beaucoup d'avance !
Zack

A voir également:

2 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
31 mars 2018 à 00:51
Bonjour,
Je ne fais pas de C donc je doute pouvoir te répondre.
Quoi qu'il en soit, personne ne sera en mesure de correctement t'aider sans un minimum d'informations.
A commencer par : Quel code utilises tu pour "stocker" tes scores ?
Et pour ton autre question : Quelles sont les informations nécéssaires à la "reprise" de la parti précédente ?
Nous ne sommes pas devins ni dans ta tête... un minimum d'efforts dans la rédaction (et les détails fournis) de ta part s'impose...
Merci.
0
pardonne mon manque de détail, mon code permet d’écrire dans un fichier texte nommé "record" le nombre total de points de la partie précédente et ensuite de lire ce dernier si veut afficher le "record".
(FILE* fichier = NULL;
        char chaine[TAILLE_MAX] = "";
        fichier = fopen("record.txt","w");
        if (fichier != NULL)
        {
            fprintf(fichier, "\n\n\nLe score de la derniere partie est %d\n\n", points);
            fclose(fichier);
        }
)(juste pour l'ecriture dans le fichier)


justement pour la sauvegarde je ne sais pas du tout ce qu'il faut récuperer, j'imagine :
-carte n°? et position
-Force, Endurence, Chance etc...
-points
et stocker toutes ces informations dans un fichier texte pour ensuite le lire et en extraire la partie en cours mais il me faudrait juste un "exemple".
Merci beaucoup.

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
31 mars 2018 à 13:13
Et pour stocker tes différentes infos... ne serait-il pas plus simple de le faire dans un fichier ini ?
Voir si ceci peut t'aider : https://openclassrooms.com/forum/sujet/lecture-d-un-fichier-ini-en-c

ou sinon dans un fichier xml
https://forums.commentcamarche.net/forum/affich-2519500-lire-un-fichier-xml-en-c
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
3 avril 2018 à 18:07
Salut Zack,

Jordane a raison, un format identifié comme .ini ou xml (ou le populaire YAML), présentent l'avantage de la flexibilité et seraient sans doutes la bonne façon de faire en réalité. Leurs désavantage est que tu dois utiliser une API ou une bibliothèque pour gérer ces formats sauf à tout coder toi même.

En guise d'alternative, si tu veux faire quelque chose de simple et portable, tu peux simplement enregistrer au format texte toutes tes données dans un certain ordre, et les relire dans le même ordre. Cela sera moins flexible, mais cela fera le job.

Tu utilises snprintf (C99) pour convertir de façon sécurisée tes nombres en char * sans dépasser la taille allouée à ta chaîne (et vérifier que la conversion s'est bien passée).

Pour l'opération inverse, tu convertis de char * à int avec strtol (ou strtod si c'est un double qui est attendu).

Quand à savoir ce que tu dois sauvegarder, c'est toi qui sais quelles sont les données qui représentent l'état du jeu.

En ce qui concerne les meilleurs scores, tu dois décider combien de scores tu conserves, si tu conserves le score et aussi un nom de joueur, et sauvegarder tout cela sous forme de texte, de manière similaire, éventuellement dans un fichier séparé. Une fois chargé en mémoire (sous forme de tableau, ou de tableau de struct si tu associes un nom à un score), tu devras bien sûr gérer l'insertion de nouveaux scores en maintenant un classement dans l'ordre décroissant.

Dal
0