Module:Basique
Ce module sert d'exemple dans la leçon Initiation au Lua avec Scribunto. son utilisation est décrite en détail dans celle-ci et, par conséquent, ce module ne doit pas être modifié sans tenir compte de la leçon.
local p = {}
function f(x)
return x^2
end
function p.toutype()
local reponse = " "
reponse = reponse..type(cameleon).." " -- La variable cameleon n'a pas été affectée donc la fonction type devrait retourner "nil"
cameleon = 7
reponse = reponse..type(cameleon).." "
cameleon = "mian mian"
reponse = reponse..type(cameleon).." "
cameleon = true
reponse = reponse..type(cameleon).." "
cameleon = p -- N'oublions pas que p a été déclaré comme étant une table en début de module
reponse = reponse..type(cameleon).." "
cameleon = f -- f est la fonction défini un peu plus haut et qui élève un nombre au carré
reponse = reponse..type(cameleon)
return reponse
end
function p.nombre(frame)
local n = tonumber(frame.args[1])
if n == nil then
return "Je n'ai pas réussi à convertir votre chaine de caractères en nombre"
else
return "Vous avez bien rentré un nombre"
end
end
function p.verschaine()
local reponse = " "
reponse = reponse..tostring(cameleon).." " -- La variable cameleon n'a pas été affectée donc la fonction type devrait retourner "nil"
cameleon = 7
reponse = reponse..tostring(cameleon).." "
cameleon = "mian mian"
reponse = reponse..tostring(cameleon).." "
cameleon = true
reponse = reponse..tostring(cameleon).." "
cameleon = p -- N'oublions pas que p a été déclaré comme étant une table en début de module
reponse = reponse..tostring(cameleon).." "
cameleon = f -- f est la fonction défini un peu plus haut et qui élève un nombre au carré
reponse = reponse..tostring(cameleon)
return reponse
end
local Categorie = { ["Prénom"] = "Christine", ["Mois"] = "Avril", ["Métier"] = "Boulanger", ["Poisson"] = "Truite", ["Métal"] = "Argent", ["Planète"] = "Saturne", ["Instrument"] = "Piano"}
function p.listecle()
local reponse = " "
local suivant, objet
for index = 1, 7 do
suivant,objet = next(Categorie,suivant)
reponse = reponse.."<br /> "..suivant.." correspond à "..objet
end
return reponse
end
function p.yatil(frame)
local suivant,objet
local trouve = false
repeat
suivant,objet = next(Categorie,suivant) --Cherche la clé suivante et la met dans suivant
if objet == frame.args[1] then trouve = true end
until suivant == nil or trouve -- On tourne dans la boucle jusqu'à ce que toute la table ait été parcourue ou jusqu'à ce qu'on ait trouvé
if trouve then
return "Le mot figure dans la table"
else
return "Le mot ne figure pas dans la table"
end
end
local souk = {"flute", "pipo", "manche à balaie", "serpière", "jeu de cartes", "coton tige", "tourne vis", "rateau", "stylo", "poupée"}
function p.description()
local reponse = " "
for index, objet in ipairs(souk) do
reponse = reponse.."<br />à la clé numéro "..index.." se trouve l’objet "..objet.."."
end
return reponse
end
local fouillis = {["Nourriture"] = "Fromage", ["Boisson"] = "Limonade", ["Bestiole"] = "Cafard", ["Couvert"] = "Fourchette", ["Truc"] = "Machin chose"}
function p.farfouille()
local reponse = " "
for index, objet in pairs(fouillis) do
reponse = reponse.."<br />à la clé "..index.." se trouve l’objet "..objet.."."
end
return reponse
end
function i(x)
error("turlututu chapeau pointu",3)
end
function h(x)
i(x)
end
function g(x)
h(x)
end
function p.erreur()
g(2)
end
function plouf(x)
local tab ={6,8}
return x + tab
end
function p.crash()
local a,b = pcall(plouf,3)
if a == false then
return b
else
return "Aucun probléme ! La fonction a retourné"..b
end
end
return p