Scoreutils gerer les scores dans vos jeux

Description

ScoreUtils introduit deux classes :

TPlayerScore, contenant basiquement le nom (string) et le score (int64) d'un joueur

TPlayerScores, composant type Liste contenant tout les scores des joueurs. Les scores sont automatiquement triés du plus grand (index 0) au plus petit (index N) a l'ajout d'un ou plusieurs scores.
TPlayerScores permet egalement de lire ou sauver un fichier ".scores" de type INI (voir entête de ScoreUtils pour la structure).

Pour utiliser TPlayerScores nul besoin de declarer une variable et d'en creer une instance, utiliser les variables automatiquement créées a l'initialisation et detruite a la finalisation de l'unité.
Ces variables sont Scores et son alias PlayerScores.

Choix du Int64 comme sotckage du score :
int64 est un type assé simple pouvant contenir 2 integer, 4 word, 8 bytes, 1 double, 2 single.
de quoi satisfaire vos besoin, on peu imaginer des structures tel :

type
bits64rec = record
case integer of
0: (i64 : int64);
1: (i8 : array[0..7] of shortint);
2: (i16 : array[0..3] of smallint);
3: (i32 : array[0..1] of longint);

4: (ui64 : UInt64);
5: (ui8 : array[0..7] of byte);
6: (ui16 : array[0..3] of word);
7: (ui32 : array[0..1] of longword);

8: (fl64 : double);
9: (fl32 : array[0..1] of single);
end;

exemple :
data [[Niveau de difficulté 1][Level atteint 1][Temps en secondes 2][Score total 4]]

NiveauDeDifficulté := bits64rec(Scores.Items[N].PlayerScore).ui8[0];
LevelAtteint := bits64rec(Scores.Items[N].PlayerScore).ui8[1];
TempsEnSecondes := bits64rec(Scores.Items[N].PlayerScore).ui16[1];
ScoreTotal := bits64rec(Scores.Items[N].PlayerScore).ui32[1];

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.