Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lua Discussion :

[Tutoriel] Lua : Le Tutoriel


Sujet :

Lua

  1. #1
    Membre averti
    Avatar de Claude URBAN
    Homme Profil pro
    Prendre le temps de vivre. . .
    Inscrit en
    mai 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Prendre le temps de vivre. . .

    Informations forums :
    Inscription : mai 2006
    Messages : 266
    Points : 324
    Points
    324
    Par défaut [Tutoriel] Lua : Le Tutoriel
    Bonjour à toutes et à tous,

    Je viens de terminer un tutoriel sur le langage de script Lua que vous trouverez à cette adresse: http://wxlua.developpez.com/tutoriel...cours-complet/. Ce tutoriel est un cours d'initiation complet au langage de script qu'est Lua et vous permettra d'apprendre rapidement les bases.

    Je vous remercie de bien vouloir me faire part de vos remarques, commentaires et critiques.

    Merci de votre attention et bonne lecture.

    Bien à vous.

    Claude

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : février 2008
    Messages : 89
    Points : 310
    Points
    310
    Par défaut Super.boulot
    Bonjour,
    je suis en train de lire votre passionnant tuto, j'ai besoin d'un langage de script et j'ai jeté mon dévolu sur Lua.
    Au chapitre des tables, section 8b, je pense qu'il y a eu un soucis de copier/coller, enfin, le code n'est pas du tout correct.
    je pense que le code est plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    maTable = {} --création d'une table
    k = "x" -- affectation de la chaîne "x" à la variable
    maTable[k] = 10 -- nouvelle entrée, avec la clé(k) = "x" de valeur = 10
    maTable[20] = "grand" -- nouvelle entrée, avec la clé(k) = 20 de valeur = "grand"
    print(maTable["x"]) --> 10 (c'est la clé k qui est égal à 20)
    print(maTable[20]) --> "grand"
    Merci en tout cas pour ce travail.

  3. #3
    Membre averti
    Avatar de Claude URBAN
    Homme Profil pro
    Prendre le temps de vivre. . .
    Inscrit en
    mai 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Prendre le temps de vivre. . .

    Informations forums :
    Inscription : mai 2006
    Messages : 266
    Points : 324
    Points
    324
    Par défaut Correction effectuée.
    Bonjour,

    Ça y-est, c'est corrigé.

    Je suis content que mon tutoriel sur lua te soit utile et je te remercie pour ta remarque.

    Effectivement, il manquait la parenthèse fermante aux deux fonctions print(...).

    Comme mentionné ci-dessus, l'erreur est maintenant corrigée.

    N'hésite pas à me recontacter si tu en rencontres d'autres.

    Encore merci à toi.

    Bonne journée et bonne lecture.

    Claude

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Collégien
    Inscrit en
    mai 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 12
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : mai 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut merci.beaucoup
    Bonjour un grand merci pour tout,

    Cela me permet de progresser, car il est très difficile de comprendre une fonction si on ne sait pas qu'elle existe

    Je pense qu'il faudrait modifier le code exemple dans la section :

    4.f return et break

    if car ~= 40 and car ~= 44 then
    -- on fait ici ce que l'on a à faire
    return car
    else
    break
    end

    Par :
    if car == 40 or car == 44 then

    pour que l'explication suivante soit en accord.

    Ce qui peut se traduit par :

    si … on a trouvé ce que l'on cherche … alors
    … on fait ce que l'on a à faire et on sort du test en retournant la valeur de car, que l'on a trouvée (40 ou 44).
    sinon … on sort (break) du test conditionnel sans rien faire et le programme continue directement après la fin du test.
    fin
    PS: encore un grand MERCI Claude Urban , message à supprimer après la correction .

  5. #5
    Membre averti
    Avatar de Claude URBAN
    Homme Profil pro
    Prendre le temps de vivre. . .
    Inscrit en
    mai 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Prendre le temps de vivre. . .

    Informations forums :
    Inscription : mai 2006
    Messages : 266
    Points : 324
    Points
    324
    Par défaut Erreur corrigée...
    Bonjour Pix56 et BRAVO ...


    Bravo pour ta sagacité et merci pour m'avoir retourné cette information.

    Bien évidement tu as entièrement raison... "Errare humanum est, perseverare diabolicum* "

    C'est (40 ou 44) qui a mis la pagaille... mais tu as raison.

    Ce qui prouve que tu as parfaitement compris le "pourquoi du comment".

    Il a fallu que je remette les mains dans le cambouis...
    mais j'y suis arrivé et c'est corrigé.

    Sur les deux sites: developpez.com et wxLua.free.fr

    Si tu en trouves d'autres, n'hésite pas à me les signaler.


    Merci à toi et bonne continuation dans ton étude de ce langage.

    Claude


    * Se tromper est humain, persévérer est diabolique ...

  6. #6
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    juin 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : juin 2016
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Fonctions Lua
    Bonjour

    je débute dans la programmation Lua et j'ai lu votre tutoriel, très bien fait et complet. merci.
    Par contre je n'ai pas trouvé de réponse à une question : en ce moment je modifié et teste des scripts. Je voudrais savoir à quoi correspond le nom d'une fonction composé du symbole ":"
    Ex : function RentVehicles:loadMap(name) et comment est utilisé ( alimenté ?) l'argument "name"

    D'avance merci beaucoup
    Eric

  7. #7
    Membre averti
    Avatar de Claude URBAN
    Homme Profil pro
    Prendre le temps de vivre. . .
    Inscrit en
    mai 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Prendre le temps de vivre. . .

    Informations forums :
    Inscription : mai 2006
    Messages : 266
    Points : 324
    Points
    324
    Par défaut
    Bonjour rick47,


    Ça va être un peu compliqué pour te répondre, d'autant plus que ta demande dépasse largement le cadre de mon "petit tutoriel"... pour débutant!

    Pourquoi compliqué:

    Parce que Lua n'est pas vraiment un langage orienté objet, et qu'il ne possède pas de concept intégré des classes.

    Que dans ton exemple, on rentre en plein dans la POO.

    Que le système de (fausses) classes "Lua" est différents des systèmes "classiques" C++ et autres.

    Il s'agit plus d'un système de "pseudo classes" qui utilise des tables et des méta-tables...

    Et en plus, tu me donnes simplement qu'une toute petite ligne de code...


    Mais bon, je vais quand même essayer.

    RentVehicles est très certainement une "classe" qui a du être créée précédemment de la façon suivante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    -- Création d'une classe
    RentVehicules = { ? }    -- ? parce que je ne sais pas s'il y a quelque chose à l'intérieure...
     
     
    -- méthode de classe
    function RentVéhicles:loadMap(name)
     
        --- ...là aussi je ne sais pas ce qu'il y a ???
     
    end
    loadMap est une méthode de classe qui appartient à RentVehicles et qui est censé faire quelque chose...

    Les deux points : indique la liaison entre la classe et la méthode.

    Quant à (name) il s'agit d'un paramètre classique que l'on passe à la fonction lors de son appel.


    Il faudra ensuite créer un objet qui prendra les caractéristiques de ta fonction.

    nom_objet = RentVehicles:loadMap(nom_de_la_map) (nom_de_la_map, par exemple)

    et après, tu fais ce que tu as à faire avec ton nom_objet...


    MAIS, il me faut quand même reconnaître que je m'aîtrise assez mal le sujet de la POO avec Lua... (POO qui, encore une fois, n'en est pas une...)

    Recherche sur le Net pour plus de précision.

    Il y a pléthore d'exemples et d'explications.

    Essaye là, http://www.tutorialspoint.com/lua/lu...t_oriented.htm, ça m'a semblé intéressant.


    Voilà, j'espère que ma réponse te seras de quelque utilité.

    Merci de m'avoir contacté et d'avoir lu mon tutoriel.

    Et si tu as d'autres interrogations, n'hésite pas...


    Bonne journée.


    PS: Il est inutile de faire plusieurs mails... en général un seul suffit!
    Il faut bien comprendre que je ne suis pas au garde à vous devant ma boîte mail à attendre que quelqu'un me pose une question.
    Il faut donc "laisser le temps au temps..."
    Merci.

  8. #8
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    décembre 2011
    Messages
    3 508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 3 508
    Points : 12 246
    Points
    12 246
    Billets dans le blog
    8
    Par défaut
    Bonjour !

    Citation Envoyé par Claude URBAN Voir le message
    Que le système de (fausses) classes "Lua" est différents des systèmes "classiques" C++ et autres.

    Il s'agit plus d'un système de "pseudo classes" qui utilise des tables et des méta-tables...
    Personnellement, je n'y ai jamais trop compris grand chose.

    @rick47

    J'ai supprimé la discussion que vous aviez ouverte dans le forum, puisque la question était la même.

  9. #9
    Candidat au Club
    Homme Profil pro
    Agent de piste
    Inscrit en
    septembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Agent de piste

    Informations forums :
    Inscription : septembre 2019
    Messages : 2
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Actuellement, je me suis mis à apprendre le LUA et j'ai découvert votre tutorial très intéressant étant donné que je suis débutant dans ce domaine ^^.

    J'ai une petite question concernant les opérateurs logiques (2-h), je ne comprends pas les exemples que vous mentionnez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    10 or 20  --> 10
    10 or error()  --> 10
    nil or "a"  --> "a"
    nil and 10  --> nil
    false and error()  --> false
    false and nil  --> false
    false or nil  --> nil
    10 and 20  --> 20
    Exemple :

    10 or 20 --> 10, alors que pour moi c'est un choix entre l'un OU l'autre.
    10 and 20 --> 20, alors que pour moi il faut l'un et l'autre pour que ça fonctionne.

    A mon avis, je ne suis pas du tout dans le bon. Auriez-vous une autre explication svp ?

    Merci ^^.

    Cordialement

  10. #10
    Membre averti
    Avatar de Claude URBAN
    Homme Profil pro
    Prendre le temps de vivre. . .
    Inscrit en
    mai 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Prendre le temps de vivre. . .

    Informations forums :
    Inscription : mai 2006
    Messages : 266
    Points : 324
    Points
    324
    Par défaut
    Bonjour,

    Merci de vous êtes intéressé à ce langage et de vous êtes arrêté sur mon tutoriel.

    Dans ce cas, il ne faut pas prendre au pied de la lettre les notions or, and et not .

    Si dans le langage courant, or équivaut à ou, and à et, not à pas, dans le cas du langage LUA il

    faut retenir que :

    1/ L'opérateur de disjonction or retourne son premier argument si cette valeur est différente de nil

    et
    false, ou son second argument dans le cas contraire.

    Exemple:

    10
    or 20 va retourner 10, car le premier argument est 10. (Valeur différente de nil et false)

    nil or 20 va retourner 20, car le premier argument est nil. (Donc, retourne le deuxième.)

    false or 20 va retourner 20, car le premier argument est false. (Donc, retourne le deuxième.)


    C’est une règle de ce langage .

    Il faut l’apprendre et à ne pas l’interpréter.

    Ne pas considérer or comme un choix et and comme l’un ou l’autre.

    Même si ça peut paraître illogique.

    Mais considérer que les deux opérateurs and et or utilisent un raccourci d’évaluation.


    En résumé :

    or retourne le premier argument s’il est différent de false / nil.

    and retourne le premier argument si est égal à false / nil.

    not retourne toujours false / true.



    J’espère avoir répondu à votre question et que ces quelques lignes vous permettrons de mieux

    appréhender les subtilités de ce langage ?



    N’hésitez pas à venir me requestionner si besoin est.


    Bonne continuation.


    Claude




  11. #11
    Candidat au Club
    Homme Profil pro
    Agent de piste
    Inscrit en
    septembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Agent de piste

    Informations forums :
    Inscription : septembre 2019
    Messages : 2
    Points : 4
    Points
    4
    Par défaut
    En effet, ayant pour habitude d'utiliser la logique comme dans les autres domaines, je n'avais pas prêté attention à la signification de cette partie. Maintenant, je comprends mieux .

    Merci de m'avoir éclairé sur ce point.

    Cordialement

Discussions similaires

  1. [Tutoriels][DirectX] directshow tutoriels et articles
    Par moldavi dans le forum Contribuez
    Réponses: 4
    Dernier message: 16/04/2008, 18h43
  2. Réponses: 9
    Dernier message: 02/12/2007, 02h54
  3. Réponses: 18
    Dernier message: 19/03/2007, 09h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo