Aller au contenu

j'apprend le LUA mai


Messages recommandés

Posté(e)

il faut faire return de la variable a et de la variable b.

Là tu ne fais que un retour de a...

 

et pour les exploiter en-dehors de la fonction, il faut affecter le retour de ta fonction a des variables :

 


local MonRetourA
local MonRetourB

MonRetourA, MonRetourB = coco(200,10)

if MonRetourA == 220 then print("uuuuuuu") end
if MonRetourB == ......
if MonRetourA + MonRetourB == ......

 

Posté(e)

Mon problème est

pour le moment mon code if....  ne prend en charge que R1 qui est la multiplication

 

function Calcul(x, y)
local  r1 = x * y
 local r2 = x + y
  
return r1, r2
end
  
if Calcul (2, 2) == 8 then print("ok pou R1")  ----multiplication 2x2
elseif Calcul (10, 10) == 10 then print("R2 ")  ---- adition 10 + 10
end

 

Posté(e)

ok :13: merci

coco que je suis 

function Calcul(x, y)
local  r1 = x * y
 local r2 = x + y
  
return r1, r2
end

 
 r1 =  Calcul(10 , 10)
 r2 = Calcul(2, 2)
  
if r1 == 1000 then print("ok pou R1")
elseif r2 == 4 then print("R2 ")
end

 

 

  • Like 1
Posté(e)

Tu ne devrais pas utiliser les même nom de variable dans ta fonction et hors de ta fonction.

Là ça marche grâce au local que tu as mis dans la fonction, sinon... :4:...

Posté(e)

:wacko:

Comme ça 

 arbre =  Calcul(10 , 10)
 arbre2 = Calcul(2, 2)
  
if arbre == 100 then print("ok pou R1")
elseif arbre2 == 4 then print("R2 ")
end

 

Posté(e)

Quand tu programmes, la rigueur dans le choix du nom des variables, ainsi que leur portée, la visibilité des syntaxes et l'indentation est une chose très très importante !

 

là tu es sur des petit bout de code, le jour où tu fais plus gros, tu seras perdu en un rien de temps, et pas capable de debugger....

  • Like 1
Posté(e)

Mai avant de commencer un projet je réalise un plan. 
 

j’ai une app sur iOS très pratique pour remettre ses idées en place. 
Il s’agit de: MindNode  

  • Like 1
Posté(e) (modifié)

salut

 

Aujourd'hui j'essaye de comprend le fonction et l'utilité des boucles FOR,   while"  et   repeat.

 

J'essaye de réalisée un clignotement avec un modul FIBARO (Value =  1 Value=0 .....)  mai je ne sais pas quelle boucle utilisée..

 

et envoyer un break ou une condition pour STOP

 

Modifié par 971jmd
Posté(e) (modifié)

pour s'amuser, il te faut un module à faire clignoter, et un autre comme un interrupteur pour l'arrêter/démarrer.

 

après tu fais :

  while le_module_interrupteur = 1 do
    --ton code de pour faire clignoter la lampe
  end

tu mets le module interrupteur en trigger de la scène.

s'il passe à 1, ça va clignoter, si tu le passe à 0, ça va s'arrêter.

Modifié par jjacques68
Posté(e)

ok je teste 

 

La semaine dernière j'ai crée une fonction pour incrémentée une variable globale, fonction qui fonctionne tresbien

 

est-t-il possible de faire la même chose avec une variable LOCAL  ,

 

 

 

Posté(e)

J'ai fait comme ça mai manque quelque chose 

 

local p = {}
 
function p.variables()
    local variable = 1
 
    variable = variable +1
    return variable
end


 if a == a then  p.variables() end
  
 if p.variables() == 2 then print ("2") end
 

 

Posté(e)

J'ai testé une fonction comme ça 

 

mai impossible d'exploiter le foncA 

 

si foncA = 20 alors.......ne fonctionne pas 


function foncA (z , x)
   resultat =     z + x
      return  resultat   
end

local a = 100

if a == 100 then  
  foncA (10, 10) 
  print(resultat)
end 


if foncA ()  == 20 then  
  print("ok")
  end 

 

Posté(e) (modifié)

j'ai trouver 

 

function foncA (z , x)
   resultat_foncA =     z + x
      return  resultat_foncA   
end

if a == a then  
  foncA (20, 230) 
  print(resultat_foncA)
end 

local azerty = resultat_foncA
if resultat_foncA == 250 then  
  print("ok")
  end 

 

Modifié par 971jmd
Posté(e)

Non je n'ai pas trouver :(

pk    print (foncA(resultat_A_foncA)) me renvoi 10 et 100

 

pour moi print (foncA(resultat_A_foncA))  = 100

et 

print (foncA(resultat_B_foncA))  = 10

function foncA (a , b)
   resultat_A_foncA =     100
   resultat_B_foncA =     10
   
      return  resultat_A_foncA    ,  resultat_B_foncA
end

print (foncA(resultat_A_foncA))

 

Posté(e) (modifié)

En gros je n'arrive à dissocier les deux argument  

 

avec un seul argument ça fonctionne 

 

function foncA (z )
   arg_A =     z 
      return  arg_A   
end


local aze = 10
if aze == 10 then   foncA (2) 
  print(arg_A)
end 


if arg_A == 2 then  print("ok youppp")
  end

 

Modifié par 971jmd
Posté(e)

tu te mélanges à nouveau les pins eau avec les variables ! 

 

tu transmets, lors de l'appel de la fonction, un argument qui est le retour de la fonction !

 

et tu du coup tu n'utilises pas a et b dans ta fonction !

Posté(e) (modifié)

Si je souhaite affecter une valeur 2 à l’argument A :

1>>>>   if  ......  then foncA (2) 

ou

2>>>>   if ....... then resultat_A_foncA (2)

 

Et pour la lire 

3>>>>.    If  resultat_A_foncA = 2 then.....

ou

4>>>>.     if fonc_A = 2 then ......

 

il y a une heure, 971jmd a dit :

Non je n'ai pas trouver :(

pk    print (foncA(resultat_A_foncA)) me renvoi 10 et 100

 

pour moi print (foncA(resultat_A_foncA))  = 100

et 

print (foncA(resultat_B_foncA))  = 10


function foncA (a , b)
   resultat_A_foncA =     100
   resultat_B_foncA =     10
   
      return  resultat_A_foncA    ,  resultat_B_foncA
end

print (foncA(resultat_A_foncA))

 

function foncA (z)
Modifié par 971jmd
×
×
  • Créer...