Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Vos tutoriels et astuces


Index du Forum » Vos tutoriels et astuces » [tutoriel] Le lua FX
-florian66- Hors ligne Ancien rédacteur Points: 2370 Défis: 20 Message

[tutoriel] Le lua FX

Posté le 27/03/2014 19:34

Ce tutoriel est en cours de construction !
C'est une rampe de lancement au langage Lua adapté à nos chères calculatrices !

Sommaire :
I) Mise en place sur calculatrice
II) Liste des noms réservés
III) Les variables
IV) Les bibliothèques
V) Les librairies
VI) Les notations


I) Mise en place sur calculatrice

Pour pouvoir lire et interpréter le lua sur votre calculatrice:
téléchargez Lua FX, regadez le tuto, puis installez le fichier .g1a dans votre calculatrice Casio à l'aide de Fa 124 et regadez le tuto.

De la documentation est fournit avec des exemples et les add-ins correspondants.

Pour pouvoir programmer sur ordinateur, utilisez lua helper, lua Edit ou bien Edit sur calculatrice. Le format .lua n'est composé que de texte, vous pouvez aussi utiliser un éditeur de texte lambda, mais vous n'aurez pas de coloration syntaxique.

Si vous programmez sur PC, le logiciel Fa 124 permet le transfert des données vers la calculatrice (sur la page FA124 : regardez le paragraphe II puis B mais au lieu de mettre un *.g1e ou *.g1a, mettez "All files" (*.*) et cherchez votre fichier).

II) liste des noms réservés
Le Lua est sensible à la casse, c'est à dire que "Nom" n'est pas pareil que "nom" ou "nOm"
On peut écrire et utiliser n'importe quelle variable dans le programme sauf :

and - break - if - else - elseif - end - false - true - for - do - until -
in - local - nil - not - repeat - then - return - or - while - function


Ces noms réservés vous seront utiles pour les boucles, les conditions, les fonctions, … c'est ce que l'on apelle la sémantique.

III) Les variables

Il existe plusieurs sortes de variable :

nil : cette valeur sert à dire que cette variable ne contient (plus) rien. Vous pouvez donc rendre n'importe quelle variable nil. Par soucis de place en mémoire, il est judicieux de lancer le garbagecollector régulièrement afin de supprimer toutes ces variables inutiles.
Sa déclaration ou attribution se fait :
a=nil


nombre : la variable contient un nombre( équivalent du float en C) [entre 3.4*10^48 et -3.4*10^(-48)]
déclaration :
nb==412 ou nb==4*10^6


table : la variable devient une table (liste ou matrice)
déclaration :
A={} [green]-- on initialise la table[/green]
A[12]=8 [green]-- on met 8 dans la 12eme case[/green]
tab["lvl"]=nil [green]-- il n'y a pas d'erreur[/green]

Une table peut contenir des chaînes de caractères (strings) ou des fonctions, elle n'a pas de taille définie, on peut ajouter une variable à n'importe quel indice, que l'on peut utiliser d'autres choses que des nombres pour accéder à une case du tableau. Si on appelle une case qui n'existe pas, la valeur sera nil.

String : la variable contient un mot ou une phrase. Il prend très peu de place

boléen : la variable contient juste true ou false
déclaration :
A=(1==3) [green]-- A contient false puisque que 1≠3[/green]
A=(y+x)≥z [green]-- A contient true ou false[/green]


userdata : réservé aux fichiers

function : la variable réfère à une fonction de la librairie ou une fonction lua
déclaration :
line=nbdraw.line [green]-- la fonction ligne réfère à la fonction nbdraw.line[/green]

function rectangle(x1,y1,x2,y2)  [green]--rectangle est une fonction lua de 4 paramètres[/green]
line(x1,y1,x1,y2) [green] --dessine le rectangle[/green]
line(x2,y1,x2,y2)
line(x1,y1,x2,y1)
line(x1,y2,x2,y2)
end -[green]- on signale la fin de la fonction[/green]

rectangle(10,10,20,20) [green]-- on rappelle rectangle dans le programme[/green]


Les types de variable :
Chaque variable peut être local, global ou constante.

global : une variable globale est dans tous le programme et peut être récupérée par un autre programme.
déclaration :
y=2 [green]-- variable globale y prend la valeur 2[/green]


local : une variable locale est plus vite appelée qu'une variable gobale mais n'est visible que dans le programme où elle est.
déclaration :
local x=18 [green]-- x sera plus vite appelé que y mais ne reste que dans un bouts de code[/green]


IV) les bibliothèques

Chaque fonction du luaFx appartient à une bibliothèque.

Exemple :
nbdraw.line(x1,y1,x2,y2) [green]-- line appartient à la bibliothèque nbdraw[/green]


On peut déclarer un alias de fonction lorsque l'on s'en sert souvent dans le programme. Cet alias permet d’accéder plus rapidement aux fonction et réduire le nom de la fonction : on peut donc les personnaliser.

Exemple :
line=nbdraw.line [green]-- la fonction devient un alias[/green]
... code
line(x1,y1,x2,y2) [green]-- dessine avec la fonction nbdraw.line[/green]

wait=misc.wait [green]-- fonction d'attente[/green]
... code
wait(x) [green]-- utilise la fonction misc.wait()[/green]


Mais key(numero_de_la_touche) n'a pas vraiment de bibliothèque car c'est une fonction instantanée incluse dans l'add-in luaFX.

V) les librairies

Dans un programme lua, on peux appeler un autre programme avec des fonctions et/ou des variables.

Il faut donc créer une librairie que le programme principal lira et ajouter :
def="module exemple"
au début de la librairie puis avec le code suivant inclus dans la programme principal, on peut appeler les fonctions qui sont dans cette librairie comme si elles étaient déclarées dans le programme principal.

le code
Cliquer pour enrouler

local print = nbdraw.print

f,err = misc.modload ( "nom_de_la_lib") [green]-- le nom doit faire moins de 8 caractères[/green]
if f == nil -- si il y a erreur, f = nil
then
  print(err) [green]-- err contient le message d'erreur[/green]
end [green]-- affiche l'erreur lors du chargement du fichier[/green]
f() [green]-- execute le fichier (et donc defini les fonctions et les variables globales qui deviennent accessibles)[/green]


VI) les notations

Vous aurez peut être remarqué comment sont mis les commentaires :

code_sur_la_ligne[green]-- commentaire ne prenant qu'une ligne[/green]
code [green]--[[ commentaire sur plusieurs lignes
...
on met ce que l'on veut dedans]]--[/green]



1, 2, 3 Suivante
Eltoredo Hors ligne Modérateur Points: 4299 Défis: 35 Message

Citer : Posté le 27/03/2014 19:39 | #


Le garbadgollector ? Il faudrait que tu soit un petit peu plus explicite
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)
-florian66- Hors ligne Ancien rédacteur Points: 2370 Défis: 20 Message

Citer : Posté le 27/03/2014 19:41 | #


Je sais mais ce n'est que le début attends un peu

Edit Louloux : il faut te relire, il manque des mots dans tes phrases et ça ne te dérange même pas ? J'ai ajouté le verbe pour que ta phrase ait un sens.
In Arch, I trust ! And you ?
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 29/03/2014 13:47 | #


Eltoredo a écrit :
Le garbadgollector ? Il faudrait que tu soit un petit peu plus explicite

le garbagecollector veut dire le ramasseur d'ordures, quand tu passe une variable a nil, la variable est désallouée (mais là, c'est aussi très dur d’expliquer ce qu'allouer veut dire ), une variable désallouée ne prend plus de place en mémoire.

Sinon, je suis content d’apprendre qu'un tutoriel pour le LuaFx est en cours de rédaction, j'aime beaucoup ce langage de programmation.
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
-florian66- Hors ligne Ancien rédacteur Points: 2370 Défis: 20 Message

Citer : Posté le 29/03/2014 13:49 | #


Merci limachi
Je suis content de savoir que ça pourrait servir à quelqu'un.

Edit Louloux : j'ai ajouté les majuscules et la ponctuation. De plus, il faut se calmer sur les smileys : à quoi cela sert-il d'en mettre un à chaque phrase ?
In Arch, I trust ! And you ?
Ziqumu Hors ligne Membre d'honneur Points: 3055 Défis: 9 Message

Citer : Posté le 29/03/2014 13:51 | #


Bonne idée ce tuto ! Par contre quand on lit c'est vraiment désagréable de devoir utiliser sa souris pour aller cliquer sur des machins pour affichier le texte, donc je suis pas sûr que les spoilers soient une bonne idée, met simplement le titre du spoiler en gros ou gras et ça suffira à différencier les sous parties

(enfin c'est un avis perso..)
-florian66- Hors ligne Ancien rédacteur Points: 2370 Défis: 20 Message

Citer : Posté le 29/03/2014 13:52 | #


Ouais ok je change tout mais ça prendra plus de place !

Edit Louloux : 2 fautes corrigées, et un seul point d'exclamation suffit ici, tu n'es pas en train de crier sur quelqu'un.
In Arch, I trust ! And you ?
Ziqumu Hors ligne Membre d'honneur Points: 3055 Défis: 9 Message

Citer : Posté le 29/03/2014 13:58 | #


C'est pas gênant, regarde la plupart des tutoriels du site sont plutôt longs et ça ne pose pas de problème. Au pire tu peux mettre les grandes parties (chapitres) dans un spoiler si vraiment c'est trop long
-florian66- Hors ligne Ancien rédacteur Points: 2370 Défis: 20 Message

Citer : Posté le 29/03/2014 14:02 | #


C'est ce que je comptais faire
Un sommaire puis les parties en spoiler.

Edit Louloux : 4 fautes corrigées.
In Arch, I trust ! And you ?
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 29/03/2014 15:38 | #


Super cette idée de tutoriel, elle va permettre de me lancer en lua !! Continuez !!
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 29/03/2014 17:17 | #


Pour les tables, il faut préciser que: elles n'ont pas de taille définie, on peut ajouter une variable à n'importe quel indice, que l'on peut utiliser d'autres choses que des nombres pour accéder à une case de table, tab["lvl"] renverra la variable contenue dans tab à l'indice "lvl", si on appelle une case qui n'existe pas, la valeur sera nil et ne produira pas d’erreur contrairement au C (en tout cas, c'est comme ça pour le lua, ce n'est peut-être pas le cas pour le Lua FX).

Edit Louloux : 8 fautes corrigées.
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
-florian66- Hors ligne Ancien rédacteur Points: 2370 Défis: 20 Message

Citer : Posté le 29/03/2014 18:13 | #


Le Lua est presque la même chose que le Lua FX, il y a juste quelques fonctions qui changent
Je préciserai ce que tu m'as dit.

Ajouté le 29/03/2014 à 18:18 :
Je suis content qu'il y ait des personnes que ça intéresse

Edit Louloux : Et de 9 fautes corrigées en 2 phrases ! Non mais relis-toi ! Et fais au moins l'effort de mettre des majuscules et de la ponctuation, à défaut de savoir conjuguer le présent de l'indicatif !
In Arch, I trust ! And you ?
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 29/03/2014 18:34 | #


Super, continue !
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 29/03/2014 21:58 | #


En passant, je pense utiliser le langage LuaFx pour le modding sur mon minecraft, ça pourra faire une bonne pub
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Lephenixnoir Hors ligne Administrateur Points: 21002 Défis: 143 Message

Citer : Posté le 29/03/2014 22:10 | #


Excellent idée !
Mais du modding ? Ça va être difficile (long) à mettre en place, non ?
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

Citer : Posté le 29/03/2014 22:16 | #


Louloux a l'air énervé aujourd'hui .
Pourquoi tu t'acharnes sur lui ?
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

Jeu gagnant des 48h CPC n°12

Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 29/03/2014 22:18 | #


J'ai des idées, mais pour le moment ce n'est que théorique.

Ajouté le 29/03/2014 à 22:19 :
Tenmatx a écrit :
Louloux a l'air énervé aujourd'hui .
Pourquoi tu t'acharnes sur lui ?

parce qu'il écrit un tuto, il ce doit d'être propre.
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
-florian66- Hors ligne Ancien rédacteur Points: 2370 Défis: 20 Message

Citer : Posté le 30/03/2014 09:04 | #


@ Louloux : tu n'as pas tout corrigé

Ajouté le 30/03/2014 à 09:13 :
Mais je vais essayer de faire un effort quand même
In Arch, I trust ! And you ?
Lancelot Hors ligne Membre Points: 1274 Défis: 160 Message

Citer : Posté le 30/03/2014 11:17 | #


Tiens Louloux est passé par là, et il a corrigé une trentaine de fautes sur ce topic uniquement
Calculatrices : Casio 35+ SH4 (modifiée 75) et fx-CG 20 PRIZM
Projets que je soutiens
Des exemples parmi tant d'autres
Pokémon Jade de Dododormeur
Zelda de Smashmaster
Super Geek Brothers de Siapran
Mes Programmes
Mes Programmes
Mes Projets
Mes Projets
ColorLib
Add-ins Jetpack Joyride et Pac-Man sur PRIZM (les 2 non commencés mais en réflexion)
A la recherche des sprites jetpack Joride si quelqu'un les a en couleur
-florian66- Hors ligne Ancien rédacteur Points: 2370 Défis: 20 Message

Citer : Posté le 30/03/2014 11:18 | #


au moins il n'y a que lui qui s'acharne sur moi
In Arch, I trust ! And you ?
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

Citer : Posté le 30/03/2014 12:24 | #


Tu te lances dans un tutoriel sur un langage peu connu de la communauté, donc je pense qu'il faudrait plutôt t'encourager au lieu de te faire toutes ces remarques .
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

Jeu gagnant des 48h CPC n°12

Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
1, 2, 3 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2021 | Il y a 58 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd