Aller au contenu
971jmd

j'apprend le LUA mai

Recommended Posts

il y a une heure, jjacques68 a dit :

moi c'était un MO5 de thomson, branché sur la télé :) 

avec un stylet où on pouvait cliquer sur l'écran. :) 

dommage je l'ai plus ...

moi c'est MO5 1985 et en suite Atari ST :D

il m'arrive de jouer encore sur des jeux MO5 avec un émulateur MO5 sur pc

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Pas de guillemets

t = {"lundi", "mardi"}

print(t[1])


Envoyé de mon BLA-L29 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites
print(t[1])

Le chiffre 1 est en nombre ! il ne doit pas être entre guillemet !

 

:) 

Partager ce message


Lien à poster
Partager sur d’autres sites

oui le chiffre indique la place de l'objet (index) dans la table

Partager ce message


Lien à poster
Partager sur d’autres sites

est-il possible de réalisée un code contenant  io.read avec le debug de fibaro ?

 

en gros répondre a une question du style: voulez-vous allumez la lampe ? 

 

1=ON  0=OFF

 

Partager ce message


Lien à poster
Partager sur d’autres sites

La librairie io n’est pas disponible et ne le sera je pense jamais pour des raisons de sécurité.


Envoyé de mon iPhone en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

salut

 

j'ai réalisée ce petit code avec la boucle while true do, mai il me semble pas très stable.

 

quand je dépasse la barre de 50% la luminosité ce place à 49% jusque-la ça va mai j'ai le message "vous etre pas autorisée réglée la lampe à plus 50%" qui serépète 2 ou 3 fois dans le debug, après avoir dépassé la valeur de 50%

 

--[[
%% properties
33 value
%% events
%% globals
--]]


    local lp1 = tonumber(fibaro:getValue(33, "value"))
    print("Valeur du Module = "..lp1.. " %")

-- On démarre une boucle 
while true do
-- si a est supérieur à 50% alors retour de la lampe à 48%
if (lp1 >= 50) then
    print("vous etre pas autorisée réglée la lampe à plus 50%")
    
    fibaro:call(33, "setValue", "49")
fibaro:abort()
end 
-- si a est inférieur à 50, la lecture du script continue
lp1 = lp1 +1
-- on attend 1 seconde
fibaro:sleep(1000)
end
[DEBUG] 22:30:24: Valeur du Module = 70 %
[DEBUG] 22:30:24: vous etre pas autorisée réglée la lampe à plus 50%
[DEBUG] 22:30:24: Valeur du Module = 49 %
[DEBUG] 22:30:25: vous etre pas autorisée réglée la lampe à plus 50%

 

Modifié par 971jmd

Partager ce message


Lien à poster
Partager sur d’autres sites

j'ai trouver plus simple, mai rien n'avoir avec :while true 

 

surement que je n'ais pas encore bien compris l'utilité de while true  -_-

 

enfin le petit code test fonctionne 

local a = tonumber(fibaro:getValue(33, "value"))-- 'a' représente la fonction qui récupère (get) la valeur (Value) de l'intensité (value) du spot 107
print ("la valeur de la lampe est:" ..a.. " %")

if tonumber(a) >= 50 then -- si la valeur récupérée (ramenée en valeur numérique grâce à  tonumber) est supérieure à  1 (allumé), alors
print ('vous etre pas autorisée réglée la lampe à plus 50%')
  fibaro:call(33, "setValue", "49")

end 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

je pense que le module démarre la scène à chaque changement de sa valeur.

1,2,3...,48,49,50...

 

donc donc dans ce cas, pas besoin de boucle while true do. ça se prend les pieds dans le tapis...

Surtout que sur la HC2, tu peux avoir plusieurs instance de scène qui se lancent simultanément...

 

Ton second bout de code est ce qu'il faut faire.

Partager ce message


Lien à poster
Partager sur d’autres sites

salut

 

je revient au base de la fonction  WHILE que je commence a bien comprendre le fonctionnement.

 

mai il reste quelle que interrogative.

 

t'en que je suis sous la barre de 20 pas d’exécution si je comprend bien

 

mai si je souhait une exécution du style print("attention vous avez dépassées la barre de 20%")   ou dois je la placée dans le code ?

 

et autre chose quel est la fonction de  DO

 

local i  =10
if (i <= 20) then
    print("--------------------------------------------------")
    print("OK vous est sous la barre de 20%")
    print("--------------------------------------------------")
 end
while i <= 20 do  -- tant que i reste inférieur ou égal à 20         
   i = i + 1  -- on incrémente i
 end

 

Modifié par 971jmd

Partager ce message


Lien à poster
Partager sur d’autres sites

le "do" fait partie de la fonction while.

c'est : while condition is true do. c'est comme ça.

 

ben dans la boucle while, tu places

 

while i <= 50 do  -- tant que i reste inférieur ou égal à 50
	i = i + 1  -- on incrémente i
	print(i)
              
	if i >= 20 then 
		print("attention vous avez dépassées la barre de 20%")
  		break
	end
end

j'ai mis volontairement 50 pour la condition du while, sinon ça sert à rien.

le "break" permet de sortir de la boucle, donc de ne pas continuer d'incrémenter

 

  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok merci je comprend mieux 
 

j’ai pas encore essayé, est-il possible de mettre break sous  condition

Partager ce message


Lien à poster
Partager sur d’autres sites

Je cherche comment affichée par un PRINT la valeur finale que renvoi le RETURN calcul

 

  function mafonction()
	local a = 10  
	local b = 200  
	local c = 5 
 
	local calcul = false
     
	if (a < b) then	calcul = (c < a)
	end

	return calcul

end

 

Modifié par 971jmd

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai testé comme ça et quel que soit le résultat j'ai nil

 

  function mafonction()
	local a = 1
	local b = 200  
	local c = 0
 
	local calcul = false
     
	if (a < b) then	calcul = (c < a)
	end
end

function resultat(taille)
  mafonction(taille)end
  
 print(dessine_carre)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

c'est quoi "dessine_carre" ?

 

tu veux afficher le résultat de qu'elle fonction ?

Partager ce message


Lien à poster
Partager sur d’autres sites

aii je n'ai pas collé le bon code

 

  function mafonction()
	local a = 10
	local b = 200  
	local c =5

 
	local calcul = false
     
	if (a < b) then	
    
    calcul = (c < a)
	end
    print(calcul)
end



function resultat(ok)
  mafonction(ok)end
  
 print(resultat)

 

Désolé je découvre la chose :P

 

En gros je cherche à afficher TRUE ou FALSE   selon le résultat  

 

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

pour le moment je teste avec zerobrane studio, 

 

Exit-il un éditeur plus pédagogique ?

Partager ce message


Lien à poster
Partager sur d’autres sites

c'est quoi le "ok" que tu passes comme argument aux fonctions ?

 

il n'y en a pas l'utilité !!

 

fait les enlever !

 

pour le print de la fonction résultat

print(resultat())

 

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 2 minutes, 971jmd a dit :

pour le moment je teste avec zerobrane studio, 

nan je n'en connais pas. je code directement dans la box...

Partager ce message


Lien à poster
Partager sur d’autres sites

ok

 

Ça fonctionne avec print(resultat())

 

L'idée de mon script est créée une 1ère fonction mafonction et une 2emme resultat qui récupère le résultat du 1er

 

C'est une grande premier pour moi et j'apprécies vivement ton aide :60: 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

×