Cours

Lua Défi final

L'inventaire du joueur

Tables, fonctions et boucles pour gérer l'inventaire d'un personnage de jeu.

30 min

Dans presque tous les jeux, l'inventaire est une table. Ce défi réunit les tables avec des clés, les fonctions locales et la boucle pairs.

Le défi

  • crée une table locale inventaire vide ;
  • écris une fonction locale ajouter(objet, quantite) qui ajoute la quantité à l'objet, en partant de 0 s'il n'existe pas encore (indice : (inventaire[objet] or 0)) ;
  • appelle-la au moins 3 fois, dont deux fois pour le même objet ;
  • avec pairs, affiche chaque objet et sa quantité.
main.lua
  • inventaire est une table locale vide
  • La fonction locale ajouter(objet, quantite) est déclarée
  • Elle part de 0 si l'objet n'existe pas
  • ajouter est appelée au moins 3 fois
  • Une boucle pairs parcourt l'inventaire
  • Chaque objet est affiché
Bloqué ? Voir une solution
local inventaire = {}

local function ajouter(objet, quantite)
    inventaire[objet] = (inventaire[objet] or 0) + quantite
end

ajouter("pomme", 3)
ajouter("épée", 1)
ajouter("pomme", 2)

for objet, quantite in pairs(inventaire) do
    print(objet .. " x" .. quantite)
end