Communauté

Formatage nom pour ...
 
Notifications
Retirer tout

Formatage nom pour un affichage de HiScore

11 Posts
4 Utilisateurs
0 Likes
212 Vu
0
Début du sujet

bonjour à tous, quelqu'un saurait comment faire pour afficher dans un hiscore un nom que j'aurai rentré grace au programme de David (lettre en lignes et colonnes) que je voudrais formater  en 14 lettres

exemple : je tape le nom Patrick et le programme me rajoute 7 "." (points) à la suite pour formater mon nom en 14 lettres soit "Patrick......." + mon score

ainsi tous les noms sont formatés à l'identique

Je vous remercie

 

 

 

Ce message a été modifié Il y a 5 mois par Pat Again
8 Réponses
0
Début du sujet

j'ai trouvé un truc mais c'est pas très programmeur avec un for i = nbre de lettre +  compter le nombre de lettre à rajouter, bref pas très propre

il doit bien y avoir un truc plus joli 🙂

0

Bonjour a toi, voici le code sans passer par une boucle. Bonne journée a toi

function love.draw()   
    local LENGHTMAX=14
    local chaine="toto"
    --string.len renvoie la longueur d'une chaine 
    --string.rep chaine a repeter, le nombre de fois
    if(string.len( chaine )<LENGHTMAX) then
        local repetition=LENGHTMAX-string.len( chaine )
        chaine=chaine..string.rep( ".",repetition )
        love.graphics.print(chaine,100,100)
    end
end
Thi Nga Nguyen 05/12/2023 2:18

pour eviter de passer dans la condition en cas d'egaliter il faut remplacer "<" par "~="

Raphytator 05/12/2023 11:24

@ngadidier petite erreur dans ton code, si tu met le love.graphics.print() dans ta condition, alors il ne s'affichera QUE si la condition est remplie. Mais si l'utilisateur rentre un pseudonyme d'exactement 14 caractères ? Alors à ce moment là la chaine ne s'affichera pas.
Il faut donc sortir cette ligne de la condition afin qu'elle s'affiche qu'il y ai ou non un traitement.

Thi Nga Nguyen 05/12/2023 7:17

@raphytator bonjour a toi, je sais que mon print n'est pas au bon endroit. J'ai fait cela a l'arrache pour tester et montrer une des solutions possibles.

bonne fin d'apres midi 

0

@pat-again le code est un langage où on expose une logique.
Déjà pourrais tu expliquer pourquoi tu as pensé à faire une boucle ?

"pas très programmeur", "plus joli" ... oublis ces termes, David veut avant tout partager une façon de raisonner et l'esthétique ainsi que se comparer aux autres c'est vraiment pas l'idée.

0

Hello !

Rassures-toi, cette opération est impossible à effectuer sans passer par une boucle. La solution que t'a montré Thi Nga Nguyen utilise la fonction string.rep, mais si on regarde dans le code source de Lua, cette même fonction utilise.... une boucle.

(pour les curieux il s'agit de la fonction str_rep dans le fichier lstrlib.c)

0
Début du sujet

Bonjour  à tous et merci pour vos réponse

j'avais pensé à ça avant de mettre dans le forum :

lst_name[10] = name

-- JE calcule le nombre de point à rajouter
nbre_rajout = 14 - #lst_name[10]

rajoute = ""
for i = 1,nbre_rajout do
        rajoute = rajoute .. "."
end
lst_name[10] = lst_name[10] .. rajoute

love.graphic.print (lst_mame[10],100,100)

je vais donc modifier un peu en conséquence

et encore merci pour votre aide

0
Début du sujet


0
Début du sujet

re Bonjour à tous, j'ai trouvé une petite soluce bien pratique sinon ,si ça peut aider :

 

for h = 1 , 6 do

       -- JE formatte LE SCORE du PLAYER
       HS_formate = string.sub("000000" ..lst_HighScore[h].score, -6)

      love.graphics.print (h .. " - " .. lst_HighScore[h].nom .. " ".. HS_formate .. " " .. " W:" ..         lst_HighScore[h].world .. " L:" .. lst_HighScore[h].level , 9*32 - 20 , 320 + h*72 )

end

 

du coups, les zéros se mettent tout seul devant le score afin que tout soit au meme niveau

0
Début du sujet

Répondre
Share:

Dialoguez avec les autres membres de la gamecodeur school.

Accédez maintenant à notre serveur Discord privé : Entraide, Game Jams, Partage de projets, etc.

Vous devez être membre de la Gamecodeur School Premium pour être autorisé à accéder au serveur.