Les tables en LUA #5

De base, une table sert à stocker des valeurs. On crée une table en lui donnant un nom suivi du signe égal ainsi que des « brackets« , les parenthèses spéciales du clavier :{ }.

function love.load()
    auteurs = {}
end

Pour ajouter des valeurs à ces tables, dans un premier temps il suffit d’insérer des valeurs entre les « curly brackets » ou encore d’utiliser la fonction table.insert :

function love.load()
    --chaque valeur est séparée par une virgule comme les paramètre
    --et arguments
    auteurs = {"Tolkien", "Castelot"}
    table.insert(auteurs, "Zola")
end

La position de chaque valeur dans la table dépend de son ordre d’insertion dans celle-ci. Dans notre précédent exemple « Tolkien » est en première position alors que « Zola » n’a été inséré qu’en troisième place juste derrière « Castelot ».

Pour accéder au contenu de cette table par un simple print , on appelle la table suivi de crochets contenant la valeur que l’on souhaite voir apparaître (toujours suivi de l’emplacement avec x et y )

function love.draw()
    love.graphics.print(auteurs[1], 150, 75)
end
--output : Tolkien

Editer une table :

On peut ajouter des valeurs à une table avec la fonction table.insert comme nous l’avons déjà vu mais on peut également en ôter avec table.remove.

function love.load()
    auteurs = {"Tolkien", "Castelot"}
    table.insert(auteurs, "Zola")
    table.insert(auteurs, "Freud")
    table.remove(auteur, 2)
    --La valeur de la position 1 devient "Sanderson"
    auteurs[1] = "Sanderson"
end

Pour ajouter une variable à une position précise il faut saisir le nom de la variable avec la position voulue entre crochet, le signe égal puis la valeur entre guillemets si c’est une chaîne de caractères.

le signe # (alt gr + 3 ) permet d’obtenir la taille de la table :

function love.load()
    auteurs = {"Tolkien", "Castelot"}

    print(#auteurs)
    --Output: 2

    table.insert(auteurs, "Zola")

    print(#auteurs)
    --Output: 3

    for i=1,#auteurs do
        print(auteurs[i])
    end
end


function love.draw()
    for i=1,#auteurs do
        love.graphics.print(auteurs[i], 100, 100 + 50 * i)
    end
end

Dans la fonction love.draw ci-dessus on demande à afficher la liste complète des valeurs de la table « auteurs » en indiquant en quel x et quel y procéder. On ajoute 50 à l’ordonnée y à chaque valeur de la table … sinon elles apparaitraient superposées !!! 😀

Suite avec les Boucles For

Traduction de la source https://sheepolution.com/learn/book/7

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s