µLua DS - Forum officiel | Official forum Forum Index

µLua DS - Forum officiel | Official forum
Le bon endroit pour en savoir plus sur MicroLua et pour parler de vos projets ! | The right place to learn more about MicroLua and talk about your projects !

 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister   ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Trucs et astuces ~
Goto page: 1, 2, 3, 4, 5, 6  >
 
Post new topic   Reply to topic    µLua DS - Forum officiel | Official forum Forum Index -> Section française -> Divers -> Autour de µLua
Previous topic :: Next topic  
Author Message
Fantasix
Modérateur

Offline

Joined: 26 Apr 2010
Posts: 1,317
Localisation: SCREEN_UP, en -1, -1

PostPosted: Mon 16 Aug 2010 - 15:07    Post subject: Trucs et astuces ~ Reply with quote

Parce que dans Lua, il y a certaines fonctions qui n'existent pas (Pour le reste, il y a Lua Tutorial) :

J'ai décidé de faire un petit topic regroupant nos formules, astuces, et autres "trucs" utiles, inutiles, et tout ce que vous voulez qui pourrait être utilisé un jour ou l'autre, ou pas.

L'inversion de style booléenne avec 1 et 0 (Fantasix) :

Explication : Utiliser les chiffres 1/0 au lieu de true/false, ça peut permettre de les écrire dans les fichiers INI sans avoir de problèmes (puisqu'il n'y a pas de fonction toboolean() Muhaha)

De plus, on pouvait inverser la valeur d'un booléen en fesant : booléen = not booléen

Mais, si on veux utiliser les chiffres 1 & 0, et bah, c'est plus pareil... C'est pourquoi je propose cette petite fonction qui vous évitera de faire des if bool == 0 then ... :
Code:

function switchNumberBool(boolean)
   boolean = math.abs(boolean - 1)
   return boolean
end

Info :
  • math.abs(1 - 1) = 0
  • math.abs(0 - 1) = 1
Savoir si un chiffre est pair (Reylak) :

Explication : Oui bon là, pas besoin d'en faire tout un pâté, on veux savoir si un chiffre est pair ou pas :

Code:

function isEven(number)
    if number % 2 == 0 then
        return true
    end
    return false
end


Explication des fonctions tostring() et tonumber() par l'exemple (Ghuntar):

Code:

test = 123
print(type(test).." : "..test)

>> number : 123

test = "123"
print(type(test).." : "..test)

>> string : 123

test=tonumber(test)
print(type(test).." : "..test)

>> number : 123

test=tostring(test)
print(type(test).." : "..test)

>> string : 123

test = "abc"
test=tonumber(test)
print(type(test).." : "..test)

>> [string "local"]:1: attempt to concatenate global 'test' (a nil value)


On ne peut faire des tostring/tonumber qu'avec des nombres (Qu'ils soient au format texte ou nombre).

Déplacements dans les tableaux (Quent42340) :

I) table.move(t, oldpos, newpos) : Dans la table t, déplace la donnée qui se situe à l'index oldpos jusqu'à newpos.
Code:

table.move = function (t, oldpos, newpos) 
   local tmp = t[oldpos] 
   table.remove(t, oldpos) 
   table.insert(t, newpos, tmp) 
end

II) table.moveOnTop(t, pos) : Dans la table t, déplace la donnée qui se situe à l'index pos vers l'index 1 de la table.
Code:

table.moveOnTop = function (t, pos) 
   local tmp = t[pos] 
   table.remove(t, pos) 
   table.insert(t, 1, tmp) 
end


Fonction retournant l'angle (en degré) entre un axe vertical et une section de droite (sens inverse-trigo) (Thermo Nono):

Code:

 function getAngle(x1, y1, x2, y2)
   local angB = 0
   angB = math.deg(math.atan((x2-x1)/(y2-y1)))
   if y2 > y1 then
      angB = 180 - angB 
   elseif y2 <= y1 then 
      angB = 360 - angB 
   end
   if angB > 360 then
      angB = angB -360
   end
   return(angB)
end


Fonction permettant de centrer un texte à l'écran (Fanta'):

Code:
function screen.centerPrint(scr, y, str, c)   
   screen.print(scr, 128-#str*3, y, str, c)
end


Fonction permettant de retourner une chaine de caractère où les {x} sont remplacés par les valeurs d'un tableau (Fanta'):

Code:
function txt_gen(args, s)
         
   for k, v in ipairs(args) do
      s = string.gsub(s, "{"..k.."}", v)
   end
   
   return s
end


Exemple :

Code:
local args = {
         [1] = 5,       -- Dommages
         [2] = 10,         -- % Hémorragie
         [3] = 8,
      }

s = txt_gen(args, "-{1} Pdv Feu \n{2}% : Applique l'état Hémorragie (niv. {3})")

-- s est maintenant égale à : -5 Pdv Feu \n10%: Applique l'état Hémorragie (niv. 8)



Voilà ! Si jamais vous voulez vous aussi partager vos formules, fonctions, etc..., postez les et j'éditerais le Sujet Wink

Fanta'
_________________


BMA News :

Création du Homebrew Storage en cours ...


Last edited by Fantasix on Sun 29 Jan 2012 - 15:11; edited 10 times in total
Back to top
Visit poster’s website
Publicité






PostPosted: Mon 16 Aug 2010 - 15:07    Post subject: Publicité

PublicitéSupprimer les publicités ?
Back to top
Reylak
Administrateur

Offline

Joined: 24 Nov 2008
Posts: 2,838
Localisation: Toulouse

PostPosted: Mon 16 Aug 2010 - 15:44    Post subject: Trucs et astuces ~ Reply with quote

Pour savoir si le chiffre est pair, tu as beaucoup plus simple avec l'opérateur modulo "%" :
Code:
function isPair(number)
    if number % 2 == 0 then
        return true
    end
    return false
end


Le modulo retourne le reste d'une division euclidienne (c'est-à-dire, uniquement avec des nombres entier). Autrement dit, si le nombre est divisible par deux (et donc s'il est pair), le reste vaut 0, sinon il vaut 1.
_________________


Plein d'infos sur le SourceForge !


Back to top
Visit poster’s website MSN Skype
Fantasix
Modérateur

Offline

Joined: 26 Apr 2010
Posts: 1,317
Localisation: SCREEN_UP, en -1, -1

PostPosted: Mon 16 Aug 2010 - 16:00    Post subject: Trucs et astuces ~ Reply with quote

Oh yeah le modulo ! J'avais carrément oublié cette partie de mon cours d'algo' xD

Merci Reylak, j'édite =)

Fanta'
_________________


BMA News :

Création du Homebrew Storage en cours ...


Back to top
Visit poster’s website
thermo_nono
Modérateur

Offline

Joined: 31 Dec 2008
Posts: 2,415
Localisation: La Géhenne

PostPosted: Mon 16 Aug 2010 - 18:08    Post subject: Trucs et astuces ~ Reply with quote

très bonne idée ce recueil de fonctions.. j'en ai tout un tas que je tenterai de proposer dès que j'ai cinq minutes à moi Wink
très bonne idée aussi l'utilisation du modulo pour reconnaitre les chiffres pair.. j'y avais pas pensé.. 
Pour revenir au recueil de fonctions, il risque d'y en avoir bientôt beaucoup. Il serait p'tetr possible de classer tout ça par types.. sur une page spécialement prévue à cet effet.. (et pour ça, je ne peux m'empêcher de proposer de balancer une "wave" sur http://wave.google.com , ne serai-ce que pour essayer ce nouveau réseau social qui m'a l'air bien prometteur)
... voilà.. bonne continuation.. je reviens avec mes fonctions préférées très bientôt..






EDIT : 
j'ai créé une "wave" sur google wave avec les deux premières fonctions.. si vous souhaitez y jeter un oeil, il faut s'inscrire dans mes contacts : arnaud.gasson@googlewave.com 
ensuite il faut voir ce que l'on pourra faire.. ça a l'air bien sympa en tous cas à l'utilisation.. en plus, vous pourrez éditer et retoucher tous les messages. 
_________________
“Qui reçoit une idée de moi reçoit de la connaissance sans diminuer la mienne, comme celui qui allume sa chandelle à la mienne reçoit la lumière sans me plonger dans l’obscurité.” - Thomas Jefferson


Back to top
Visit poster’s website MSN
Fantasix
Modérateur

Offline

Joined: 26 Apr 2010
Posts: 1,317
Localisation: SCREEN_UP, en -1, -1

PostPosted: Mon 16 Aug 2010 - 19:28    Post subject: Trucs et astuces ~ Reply with quote

Hum, pour le truc de GoogleWave ... C'est certes une bonne idée, mais crois-tu que tout le monde veuille aller sur Wave juste pour voir des fonctions ?

Moi personnellement je ne pense pas l'utiliser, donc ...

M'enfin, on va voir combien de personnes adhèrent,

Fanta'
_________________


BMA News :

Création du Homebrew Storage en cours ...


Back to top
Visit poster’s website
blabla


Offline

Joined: 23 May 2009
Posts: 495

PostPosted: Mon 16 Aug 2010 - 19:33    Post subject: Trucs et astuces ~ Reply with quote

De plus , Google a annoncé qu'il avait abandonné Google Wave donc je ne vois pas vraiment l'intérêt de s'y inscrire.
EDIT : Cool la fonction pour connaitre les nombre paires !
Ca peut servir pour les jeux de baby !
On lui demande si 2 est paire et si il repond impaire , héhéhé...

Une question , c'est quoi modulo ?
Je vois ça partout notamment dans Rpg Maker.


Back to top
MSN
Grahack
Modérateur

Offline

Joined: 27 Jun 2009
Posts: 542

PostPosted: Mon 16 Aug 2010 - 21:33    Post subject: Trucs et astuces ~ Reply with quote

Moi ce que j'aime, c'est "isPair". Remarquez, ça aurait pu être pire: "estEven".

Back to top
Fantasix
Modérateur

Offline

Joined: 26 Apr 2010
Posts: 1,317
Localisation: SCREEN_UP, en -1, -1

PostPosted: Mon 16 Aug 2010 - 22:08    Post subject: Trucs et astuces ~ Reply with quote

Qu'est ce qu'il y a avec isPair ? Hum ? >.>'

Pour estEven, si c'est ce que je pense, ça n'a carrément aucun sens ... 'Fin bref

Fanta'
_________________


BMA News :

Création du Homebrew Storage en cours ...


Back to top
Visit poster’s website
Grahack
Modérateur

Offline

Joined: 27 Jun 2009
Posts: 542

PostPosted: Tue 17 Aug 2010 - 08:10    Post subject: Trucs et astuces ~ Reply with quote

"is" est de l'anglais, "pair" est du français. Ça fait suite à la guerre contre le français dans le code que j'ai menée.
Ma blague consiste à inverser les langues: "est" est du français" et "even" est de l'anglais. Si tu bosses l'informatique un certain temps, tu finiras par lire de la doc en anglais, et tu finiras par tomber sur pair/impair. À ce moment tu penseras aux jours insouciants où tu postais sur le forum de ML.
Ça t'a fait penser à quoi qui n'a aucun sens?


Back to top
Ghuntar


Offline

Joined: 03 Aug 2009
Posts: 323
Localisation: near Paris

PostPosted: Tue 17 Aug 2010 - 10:30    Post subject: Trucs et astuces ~ Reply with quote

Explication : "isPair" est aussi absurde que "estEven", c'est ce que voulait dire Grahack. Donc ta fonction tu l'appelles "isEven" (au mieux) ou "estPair" (au pire).


Ghuntar.


 
_________________
http://code.google.com/p/ghuntlet/


Back to top
Grahack
Modérateur

Offline

Joined: 27 Jun 2009
Posts: 542

PostPosted: Tue 17 Aug 2010 - 11:43    Post subject: Trucs et astuces ~ Reply with quote

Merci Ghunt, je vais t'embaucher à la rentrée je pense.

Back to top
Fantasix
Modérateur

Offline

Joined: 26 Apr 2010
Posts: 1,317
Localisation: SCREEN_UP, en -1, -1

PostPosted: Tue 17 Aug 2010 - 12:24    Post subject: Trucs et astuces ~ Reply with quote

Uh uh j'étais à coté de la plaque sur ce coup là x)

Moi qui pensais que "pair" était également anglais, bah voilà xD

J'vais éditer =p

PS: Nous remarquerons tout de même que notre "fouetteur" tyrannique n'aura point réagit x)

Fanta'
_________________


BMA News :

Création du Homebrew Storage en cours ...


Back to top
Visit poster’s website
Reylak
Administrateur

Offline

Joined: 24 Nov 2008
Posts: 2,838
Localisation: Toulouse

PostPosted: Tue 17 Aug 2010 - 20:50    Post subject: Trucs et astuces ~ Reply with quote

Maiiiiiiis T_T Moi aussi je pensais que "pair" était anglais, d'ailleurs je savais pas que "even" voulait dire "pair"... Vous savez quoi ? Je vais m'auto-flageller en guise de punition >_<

@blabla : je l'ai expliqué dans on premier post ici, ça retourne le reste d'une division dont le quotient est un entier (on appelle ça une division euclidienne). Autrement dit, si tu fais 5 // 2 (il me semble que c'est ça le symbole, mais je suis pas sûr, corrigez-moi M. le professeur de mathématiques Wink ), tu as 2 et il te reste 1, par conséquent 5 % 2 = 1.
_________________


Plein d'infos sur le SourceForge !


Back to top
Visit poster’s website MSN Skype
blabla


Offline

Joined: 23 May 2009
Posts: 495

PostPosted: Tue 17 Aug 2010 - 21:04    Post subject: Trucs et astuces ~ Reply with quote

Moi je savais que Pair était Français mais j'ignorais que Even voulais dire pair.
Reylak : Oui , fanta' m'avait expliqué en détails dans le chat.
Bon je me tais , j'ai proposé aucun formule.
Je crois que ce topic va s'arrêter ici.


Back to top
MSN
Grahack
Modérateur

Offline

Joined: 27 Jun 2009
Posts: 542

PostPosted: Tue 17 Aug 2010 - 21:59    Post subject: Trucs et astuces ~ Reply with quote

Personne n'a parlé des impairs. On dit comment ? (Le premier qui trouve gagne un cours sur les anneaux qui deviennent des corps.)
Reylak: pour un meilleur exemple, ne pas prendre deux 2.
Comme 7 = 2 x 3 + 1, on dit que 7 divisé par 2 fait 3 et il reste 1 (primaire) on dit aussi que 7 divisé par 3 fait 2 et il reste 1.
Les pros disent que 7 est congru à 1 modulo 2 (ou même modulo 3).
Reylak utilise le fait que les nbres pairs sont congrus à 0 modulo 2. (en exo: faire la phrase avec les impairs).
J'espère que Ghuntar va lacher un commentaire pédagogique ou une grosse blague.


Back to top
Display posts from previous:   
Post new topic   Reply to topic    µLua DS - Forum officiel | Official forum Forum Index -> Section française -> Divers -> Autour de µLua All times are GMT + 1 Hour
Goto page: 1, 2, 3, 4, 5, 6  >
Page 1 of 6

 
Jump to:  

Index | Create a forum | Free support forum | Free forums directory | Report a violation | Cookies | Charte | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group