besoin d'aide hollywood

12 sujets de 1 à 12 (sur un total de 12)

  • sinisrus

      #277701

      Salut,

      J’aimerai savoir comment faire pour inverser l’index d’une table Hollywood? Suis-je obliger de créer une deuxième table et de faire une boucle pour récupérer de la dernière a la première ou alors il y a une solution plus simple?

      Visiblement la fonction sort() mais je na sais pas trop comment faire je cherche aussi des livre en français si quelqu’un a des noms?

       

      Merci d’avance

      Tarzin

        #277711

        Pas de livres en français à ma connaissance.

        Tu peux par contre chercher du côté de LUA (exemples ou livres). Sinon, il te restera le forum officiel pour poser ta question (en anglais)

        Et S’ieur Artblink n’aurait pas une réponse?

        sinisrus

          #277727

          merci tarzin pour ton retour artblink à redisparu 🙁

          Tarzin

            #277730

            Désolé de ne pas pouvoir t’aider plus, j’ai lâché Hollywood pour le moment par faute de temps et n’ai plus grand chose en tête.

            Tente le forum officiel, c’est ce qu’il y a de mieux

            sinisrus

              #277731

              Le problème c’est que c’est anglais! :-/ bon pas grave je vais bien finir par trouver mais c’est vrai que lua  n’est pas tres frounis en doc/exemple

              zouzou

                #277746

                http://wxlua.developpez.com/tutoriels/lua/general/cours-complet/

                Pourtant ici c’est en fr

                De l'Amiga et bien d'autres ici:

                http://tutosproc.blogspot.fr/

                sinisrus

                  #277750

                  Merci zouzou 🙂

                  Anonyme

                    #277859

                    Salut,

                    je n’ai jamais testé Hollywood, mais si c’est du Lua, tu n’as effectivement pas de fonction intégrée qui inverse l’ordre d’un tableau.

                    Tu as, grosso modo, deux solutions :
                    1/ tu fais une copie de ton tableau et tu recopie chaque valeur en ordre inverse
                    2/ tu inverse l’index à chaque fois que tu veux accéder à ton tableau.

                    Dans le premier cas, une simple boucle for suffit.
                    Dans le deuxième cas, tu as juste besoin de connaitre la taille de ton tableau et de faire une soustraction, genre si ‘i’ est ton index :

                    mon_tableau[#mon_tableau – i]

                    Pour choisir une méthode plutôt qu’une autre, tu dois déterminer s’il est plus intéressant de retourner ton tableau complet VS de faire une soustraction à chaque nouvel accès.

                    Si ton tableau fait 10.000 entrées et que tu dois y accéder seulement 5 fois, la méthode 2 est plus adaptée.

                    Si ton tableau fait 30 entrées, mais que tu dois y accéder 3000 fois, la méthode 1 est sans doute préférable.

                    En tout cas, c’est comme ça que j’essayerai de résoudre ce problème 🙂
                    Il n’existe de toute façon pas de solution magique pour retourner le contenu d’un bloc de mémoire sans avoir un minimum de remue-ménage.

                    Pour finir, la fonction sort() peut trier ton tableau selon n’importe quel critère pertinent, si tu lui passes en paramètre le bout de code qui permet de départager deux entrées successives.

                    Bon courage 🙂

                    (et tu peux éventuellement copier-coller ton bout de code ici, ça pourra sans doute servir à un autre Amigaiste qui tombe sur la même question 🙂

                    sinisrus

                      #277861

                      Avec sort si tu as la solution pour inverser l’ordre d’un tableau je veux bien 🙂

                      sort(table,fonction(a,b) return(a>b) endfunction) je ne comprend pas a quoi correspond a et b c’est bizarre???

                      Anonyme

                        #277864

                        C’est toute la puissance des langages comme le Lua. Les fonctions sont des « first class values », c’est à dire qu’elles bénéficient des mêmes droits que des valeurs immediates comme des nombres ou des chaines de caractère.

                        Du coup, tu peux passer une fonction en parametre d’une autre fonction.

                        Dans ton exemple c’est ce que tu fais, tu passes la fonction de comparaison de deux entrées consécutives (de ton tableau) à la fonction de tri.

                        ‘a’ et ‘b’ correspondent à deux entrées du tableau, puisque la fonction de tri va comparer chaque valeur de ton tableau, 2 par 2.

                        Pour trier un tableau Lua par index à l’aide de la fonction sort(), j’avoue ne pas savoir si c’est faisable. Moi je ferai une boucle for, ça prends 3 lignes et on n’en parle plus :p

                        sinisrus

                          #277872

                          J’ai trouvé cette fonction lua que j’ai adapté à hollywood et je pense que c’est la meilleur elle inverse le premier avec le dernier, le deuxième avec l’avant dernier, etc… jusqu’au milieu de la table

                          Function ReverseItems(T)

                          local i, j = 0, ListItems(T)-1

                          While i < j
                          T[ i], T[ j] = T[ j], T[ i]
                          i = i + 1
                          j = j – 1
                          Wend

                          EndFunction

                        12 sujets de 1 à 12 (sur un total de 12)

                        • Vous devez être connecté pour répondre à ce sujet.

                        Forums AmigaOS, MorphOS et AROS Développement besoin d'aide hollywood

                        Amiga Impact