| [Tuto] Lua scripting et Toribash | |
|
+9*=-Nokturnal44-=* timothee meuhgo Kyat PiR vynzs RolFonk Kevinx Melmoth 13 participants |
|
Auteur | Message |
---|
Melmoth le Malmoth
Messages : 1161 Date d'inscription : 23/11/2009 Age : 41 Localisation : Nice, sud de la France
| Sujet: Re: [Tuto] Lua scripting et Toribash Ven 17 Sep 2010 - 20:50 | |
| | |
|
| |
timothee ToriDédié
Messages : 238 Date d'inscription : 21/06/2010
| Sujet: Re: [Tuto] Lua scripting et Toribash Ven 17 Sep 2010 - 20:52 | |
| perso jai certains problemes avec "unload", si j'y pense je ferai des tests pour expliquer mon pb plus en detail, mais en gros seuls les "objets" disparaissent, et pourtant j'ai bien le shader par defaut dans ... shader par defaut. | |
|
| |
Melmoth le Malmoth
Messages : 1161 Date d'inscription : 23/11/2009 Age : 41 Localisation : Nice, sud de la France
| Sujet: Re: [Tuto] Lua scripting et Toribash Ven 17 Sep 2010 - 20:56 | |
| Tu utilises bien la 2.0.1 ? | |
|
| |
PiR ToriObsédé
Messages : 881 Date d'inscription : 03/12/2009 Age : 29 Localisation : coucou tu veux un morceau ^^ ?
| Sujet: Re: [Tuto] Lua scripting et Toribash Ven 17 Sep 2010 - 20:59 | |
| sa me fait la meme chose pour infos '_' | |
|
| |
Kyat Gentil Organisateur
Messages : 925 Date d'inscription : 24/07/2009 Age : 43
| Sujet: Re: [Tuto] Lua scripting et Toribash Ven 17 Sep 2010 - 21:12 | |
| - Melmoth a écrit:
- Tu utilises bien la 2.0.1 ?
^ J'ai réinstallé la 2.0.1 sur la TB 3.91 beta1 et l'unload fonctionne. | |
|
| |
timothee ToriDédié
Messages : 238 Date d'inscription : 21/06/2010
| Sujet: Re: [Tuto] Lua scripting et Toribash Ven 17 Sep 2010 - 21:53 | |
| euh effectivement je suis aps a jour XD je ferme ma gueule et je revien plus tard | |
|
| |
*=-Nokturnal44-=* ToriDédié
Messages : 241 Date d'inscription : 09/04/2011 Age : 28 Localisation : Dans le bourg à côté de la boulangerie et en face de la pharmacie pas loin de la post.
| Sujet: Re: [Tuto] Lua scripting et Toribash Sam 9 Avr 2011 - 13:03 | |
| TP1 facile "fingers in the nose" c'est très siple if et for (while pas trop compris) TP2 en cours... c'est quoi des bibliothèques chapitre 3.Comment on fait une fonction double? Monsieur Melmoth ça marche ça pour fonction double? - Code:
-
-- Initialisation
truc = { }
--1 fonction double
for nbr= 0,∞ do
nbr=nbr*2
run_cmd("echo " .. nbr)
end | |
|
| |
Kyat Gentil Organisateur
Messages : 925 Date d'inscription : 24/07/2009 Age : 43
| Sujet: Re: [Tuto] Lua scripting et Toribash Sam 9 Avr 2011 - 13:27 | |
| - *=-Nokturnal44-=* a écrit:
- TP1 facile "fingers in the nose" c'est très siple if et for (while pas trop compris)
- Melmoth a écrit:
- Veut dire : tant que la condition est vraie, j'exécute les instructions entre le do et le end.
Exemple : - Code:
-
compteur=0 truc = 0 while(compteur<3) do compteur = compteur + 1 truc = truc + 3 end
Essaie de voir la logique ligne par ligne. => compteur=0 On assigne la valeur 0 à la variable "compteur" => truc=0 On assigne la valeur 0 à la variable "truc" => while(compteur<3) do tant que la valeur de la variable "compteur" est inférieur à 3 on effectue les opérations indiquées entre le mot-clé "do" (faire) et "end" (fin) => compteur = compteur + 1 On ajoute 1 à la valeur actuelle de "compteur" => truc = truc + 3 On ajoute 3 à la valeur actuelle de "truc" => end Quand l'exécution arrive à ce mot-clé, le programme "boucle" en reprenant son exécution à partir de la ligne contentant while ... do - *=-Nokturnal44-=* a écrit:
- TP2 en cours... c'est quoi des bibliothèques
Une bibliothèque c'est un ensemble de fonction déjà écrites et prêtes à l'emploi. L'exemple donné nommé "strings" n'a rien à voir avec des sous-vêtements féminins mais représente un ensemble de fonctions que l'on peut utiliser pour utiliser/modifier/gérer des chaînes de caractères. - *=-Nokturnal44-=* a écrit:
- chapitre 3.Comment on fait une fonction double?
Monsieur Melmoth ça marche ça pour fonction double?
- Code:
-
-- Initialisation
truc = { }
--1 fonction double
for nbr= 0,∞ do
nbr=nbr*2
run_cmd("echo " .. nbr)
end Nan ça marche pas. Une fonction est définie dans une structure - Code:
-
function nom_de_la_fonction(paramètres_de_la_fonction) -- Le code de la fonction end Pour une fonction qui renverrait le double du nombre passé en paramètre : - Code:
-
function double_nbr(nbr) return nbr * 2 end
Là tu as ta fonction basique. Tu l'appelles en lui passant un nombre en paramètre. Exemple: - Code:
-
run_cmd("echo " .. double_nbr(5)) Cet exemple affichera 10 dans le chat car on a passé 5 comme étant le nombre à doubler. Et comme je te l'ai déjà dis, il faut éviter de faire une boucle infinie (une boucle qui n'aurait pas de fin) car en général cela fait bugguer ton application. Imagine que tant que ta boucle n'est pas résolue, le reste du programme ne peut pas se dérouler. Une boucle infinie ne sera, par définition, jamais terminée et ne permettra donc jamais la poursuite de l'exécution du reste de l'application. | |
|
| |
*=-Nokturnal44-=* ToriDédié
Messages : 241 Date d'inscription : 09/04/2011 Age : 28 Localisation : Dans le bourg à côté de la boulangerie et en face de la pharmacie pas loin de la post.
| Sujet: Re: [Tuto] Lua scripting et Toribash Sam 9 Avr 2011 - 13:45 | |
| je me suis corrigé - Code:
-
-- Initialisation
truc = { }
--1 fonction double
function double_nbr(nbr) nbr=nbr*2 return nbr end | |
|
| |
Kyat Gentil Organisateur
Messages : 925 Date d'inscription : 24/07/2009 Age : 43
| Sujet: Re: [Tuto] Lua scripting et Toribash Sam 9 Avr 2011 - 13:54 | |
| Avec ce code tu n'as pas besoin de la partie initialisation, tu ne t'en sers pas. | |
|
| |
*=-Nokturnal44-=* ToriDédié
Messages : 241 Date d'inscription : 09/04/2011 Age : 28 Localisation : Dans le bourg à côté de la boulangerie et en face de la pharmacie pas loin de la post.
| Sujet: Re: [Tuto] Lua scripting et Toribash Sam 9 Avr 2011 - 14:29 | |
| - Code:
-
--1 fonction double
function double_nbr(nbr) nbr=nbr*2 return nbr end run_cmd("echo " .. double_nbr(1))
--2 de 0 à 19 for nbr=0,19 do run_cmd("echo " .. nbr) end --3 Boucle for nbr do function double_nbr(nbr) end run_cmd("echo " .. double_nbr(1)) --4 sur une seule ligne chaine_resultat = "" for nbr do chaine_resultat = chaine_resultat .. "," .. nbr end run_cmd("echo " .. chaine_resultat) | |
|
| |
*=-Nokturnal44-=* ToriDédié
Messages : 241 Date d'inscription : 09/04/2011 Age : 28 Localisation : Dans le bourg à côté de la boulangerie et en face de la pharmacie pas loin de la post.
| Sujet: Re: [Tuto] Lua scripting et Toribash Dim 10 Avr 2011 - 12:42 | |
| | |
|
| |
leverdier Modérateur Né
Messages : 742 Date d'inscription : 08/08/2009 Age : 33
| Sujet: Re: [Tuto] Lua scripting et Toribash Dim 10 Avr 2011 - 21:51 | |
| Teste, si ça marche, c'est bon, si ça ne marche pas, réessaye, si ça ne marche toujours pas, on t'aidera. | |
|
| |
Melmoth le Malmoth
Messages : 1161 Date d'inscription : 23/11/2009 Age : 41 Localisation : Nice, sud de la France
| Sujet: Re: [Tuto] Lua scripting et Toribash Lun 11 Avr 2011 - 8:52 | |
| - *=-Nokturnal44-=* a écrit:
- Alors j'ai bon?
1 & 2 : c'est bon 3 : non, mauvaise syntaxe du for. Il faut préciser une valeur de départ et une valeur d'arrivée, comme tu l'as fait dans le 2). 4. même chose Sinon, Matieu-Nokturnal, c'est très bien de se motiver à faire ces TDs. Mais je n'aurais pas beaucoup de temps à te consacrer ces-temps ci, comme je l'ai dit dans la partie "absences" du forum, je suis assez occupé ces derniers temps, surtout les weekends. | |
|
| |
*=-Nokturnal44-=* ToriDédié
Messages : 241 Date d'inscription : 09/04/2011 Age : 28 Localisation : Dans le bourg à côté de la boulangerie et en face de la pharmacie pas loin de la post.
| Sujet: Re: [Tuto] Lua scripting et Toribash Lun 11 Avr 2011 - 19:16 | |
| - Code:
-
--1 fonction double
function double_nbr(nbr) nbr=nbr*2 return nbr end run_cmd("echo " .. double_nbr(1))
--2 de 0 à 19 for nbr=0,19 do run_cmd("echo " .. nbr) end --3 Boucle for nbr=0,20,2 do function double_nbr(nbr) end run_cmd("echo " .. double_nbr(1)) --4 sur une seule ligne chaine_resultat = "" for nbr=0,20,2 do chaine_resultat = chaine_resultat .. "," .. nbr end run_cmd("echo " .. chaine_resultat) là ça devrais être bon merci bcp je vais lire les cours hook, 2D et 3D plus tard ça à l'air d'être bien compliqué et c'est un gros morceau en+ | |
|
| |
Melmoth le Malmoth
Messages : 1161 Date d'inscription : 23/11/2009 Age : 41 Localisation : Nice, sud de la France
| Sujet: Re: [Tuto] Lua scripting et Toribash Lun 11 Avr 2011 - 19:31 | |
| "for nbr=0,20,2 do" veut dire que tu prends les entiers 2 à 2, de 0 à 20. Donc : 0, 2, 4, 6, 8... Nous, on veut parcourir tous les entiers de 0 à 20, donc "for nbr=0,20" suffit.
Sinon, je n'ai pas testé mais ça a l'air bon. | |
|
| |
*=-Nokturnal44-=* ToriDédié
Messages : 241 Date d'inscription : 09/04/2011 Age : 28 Localisation : Dans le bourg à côté de la boulangerie et en face de la pharmacie pas loin de la post.
| Sujet: Re: [Tuto] Lua scripting et Toribash Lun 11 Avr 2011 - 21:18 | |
| Oui pour ça j'avoue je me suis trompé c'est juste for nbr= 0,20 do sinon c'est bien le TP2 et je me suis pas trompé gg à moi merci. | |
|
| |
*=-Nokturnal44-=* ToriDédié
Messages : 241 Date d'inscription : 09/04/2011 Age : 28 Localisation : Dans le bourg à côté de la boulangerie et en face de la pharmacie pas loin de la post.
| Sujet: Re: [Tuto] Lua scripting et Toribash Mar 10 Mai 2011 - 20:45 | |
| Alors voila je veux commencé un lua mON idée c'est le jeu + ou - si vous connaissez pas en fait quand on démarre l'application on appuis sur une touche comme par exemple R et l'application prend un nombre au hasard que l'on doit trouver et on doit entrer un nombre si le nombre entrer est plus petit que le nombre a trouvé l'application dis "c'est +" et l'inverse si le nombre entrer est plus grand que le nombre a trouvé. Je pense que c'est assez simple a faire mais quoi faire? Quelqu'un peut donné des étapes sans donné trop de réponse? J'ai commencé un bout de code: - Code:
-
for x>r do run_cmd("echo " c'est moins!)
for x<r do run_cmd("echo " c'est plus!)
for x=r run_cmd("echo " c'est gagné!) --x=le nombre choisi par l'application --r=le nombre tapé par le joueur Dans le code pas sûr que se soit exacte mais j'ai voulu faire: Si le nombre choisi par l'application est plus grand que le nombre tapé, dire "c'est moins" Si le nombre choisi par l'application est moins grand que le nombre tapé, dire "c'est plus" Si le nombre choisi par l'application est = que le nombre tapé, dire "c'est gagné" | |
|
| |
leverdier Modérateur Né
Messages : 742 Date d'inscription : 08/08/2009 Age : 33
| Sujet: Re: [Tuto] Lua scripting et Toribash Mar 10 Mai 2011 - 21:18 | |
| Ca n'est pas trop ça. Tu utilises la boucle for pour de mauvaises choses. Là, tu l'utilises pour des tests, et ça c'est la fonction if. La boucle for sert à répéter des actions, souvent un nombre connu de fois (ce nombre peut être une variable). Or, dans ton jeu, que faut il répéter ? L'action de demander un nombre au joueur puis de vérifier si le nombre est correct. Sait on à l'avance combien de fois faudra-t-il répéter l'action ? Non. Donc il vaut mieux utiliser la boucle while. - Code:
-
x = nb_au_hasard
while ( ) do r = ... if (x < r) then ... elseif (x>r) then ... else ... end
end
Voilà le squelette. Pour ta condition d'arrêt de la boucle while (quand est ce que tu sors de la boucle), tu as plusieurs solutions. Soit tu met : while (x != r) (Tant que x différent de r) Dans ce cas tu dois initialiser r intelligemment. Tu peux faire une variable de test égale à 0 au départ, écrire while (test = 0) Puis quand x=r, changer la valeur de ta variable test. J'aurai fait une autre méthode encore mais je ne sais pas si elle est possible en lua. | |
|
| |
*=-Nokturnal44-=* ToriDédié
Messages : 241 Date d'inscription : 09/04/2011 Age : 28 Localisation : Dans le bourg à côté de la boulangerie et en face de la pharmacie pas loin de la post.
| Sujet: Re: [Tuto] Lua scripting et Toribash Mar 10 Mai 2011 - 21:56 | |
| Oui je me suis trompé c'est vrais faut utiliser le if j'y ai pensé en + en le faisant mais le if ça sert pas a faire de test mais c'est une condition pas compris ce que tu voulais dire avec tes test | |
|
| |
Kyat Gentil Organisateur
Messages : 925 Date d'inscription : 24/07/2009 Age : 43
| Sujet: Re: [Tuto] Lua scripting et Toribash Mar 10 Mai 2011 - 22:22 | |
| - *=-Nokturnal44-=* a écrit:
- le if ça sert pas a faire de test mais c'est une condition pas compris ce que tu voulais dire avec tes test
Relis le chapitre2. 'If' est là pour faire des tests. Il teste la condition qui lui est donné entre parenthèse, il teste afin de savoir si cette condition est vraie ou fausse. Un peu comme while en fait, sauf que if n'est pas censé boucler. - Melmoth a écrit:
- Par exemple, si j'écris :
- Code:
-
truc=145 if (truc<150) then truc=30 end
Voila ce qui se passe : Je rentre la valeur 145 dans la variable "truc". Je teste grâce au if : est-ce que "truc" est inférieur à 150 ? 145 est bien mathématiquement inférieur à 150, donc j'exécute les instructions qui sont entre le "then" et le "end" : je mets la valeur 30 dans "truc". A la fin de mon code, "truc" est donc égal à 30. Le code et sa "traduction" en logique/français. C'est exactement ce dont tu as besoin. Le squelette d'application de leverdier est correct. En traduisant en "logique" on se retrouve à faire boucler le programme tant que la variable qui contient le nombre saisis par l'utilisateur n'est pas égale au nombre à trouver. A chaque boucle cependant, le programme doit effectuer diverses opérations : * Proposer à l'utilisateur de saisir un nombre * Comparer ce nombre au nombre_tiré_aléatoirement + Si le nombre_saisi est plus petit que nombre_tiré_aléatoirement => Affiche "-" + Si le nombre_saisi est plus grand que nombre_tiré_aléatoirement => Affiche "+" Enfin le point soulevé par lev concerne la condition à donner à while. On peut effectivement directement tester l'égalité entre nombre_tiré et nombre_saisi. Si les deux sont égaux, la boucle while est tout simplement sautée (le programme exécutera le code qui suit la boucle, pas le code interne de la boucle) autrement, la boucle est exécutée, et le joueur aura un affichage lui indiquant + ou -. Une solution élégante comme le propose lev est de passer par une autre variable qui ne sert QUE pour la condition de la boucle. On défini une variable au tout début du programme, en même temps que nombre_saisi. Appelons cette variable Boucle_ou_Boucle_pas et on lui donne la valeur de 0 - Code:
-
Boucle_ou_Boucle_pas = 0 On testera la valeur de Boucle_ou_Boucle_pas et tant qu'elle sera égale à 0, la boucle sera exécutée. - Code:
-
while (Boucle_ou_Boucle_pas = 0) do Enfin dans la structure de lev, on voit un if, un elseif et un else. Le dernier else représente le cas où nombre_saisi = nombre_tiré (par déduction logique, vu que les deux tests précédents testaient > ou <). Ainsi dans le else, on mettrait une ligne de code modifiant la valeur de Boucle_ou_Boucle_pas afin qu'au prochain while, la boucle ne soit plus exécutée, vu que le nombre a été trouvé. On peut simplement faire : - Code:
-
Boucle_ou_Boucle_pas = 1 Dans ce cas le while se demandant si Boucle_ou_Boucle_pas = 0 renverra un False qui aura pour effet de sauter la boucle et de passer au code le suivant. Dans notre cas, le programme s'arrête purement et simplement. Tu peux mettre un affichage pour indiquer au joueur qu'il a trouvé le bon nombre. Lui demander si il veut rejouer ou pas. Le renvoyer vers le tutoriel LUA à l'aide d'un lien, etc... ^^ | |
|
| |
Destork ToriDédié
Messages : 458 Date d'inscription : 21/10/2010 Age : 28 Localisation : Neufkatr'
| Sujet: Re: [Tuto] Lua scripting et Toribash Mar 10 Mai 2011 - 23:18 | |
| J'ai déja fait ce programme là en C et en Visual Basic, si tu commence en prog, c'est le must :> (après y'a le mastermind, mais c'est déja plus compliqué)
pour répondre à ta première question en plus bref que ce que l'on fait mes VDD ^^, dans l'ordre il faut :
Initialiser la variable qui donne le nombre au pif (celui à trouver) initialiser la variable qui servira à tester si le nombre choisit est bon ou pas (if A = B, ...) (tu peux également faire un compteur pour savoir le nombre d'essais)
la t'as besoin d'une boucle while (tant que tu n'as pas trouvé le nombre) Si c'est plus, tu dis "c'est plus" si c'est moins, tu dis "c'est moins" tu termine la boucle
Là tu code ce qu'il se passe quand la personne a trouvé.
Après, tu peux mettre un goto pour réessayer, tu peux garder une variable en mémoire pour le record, tu peux faire un menu pour faire un deux joueurs (un donne le nombre, l'autre doit trouver), ou même jouer contre l'ordi (ça c'est beaucoup plus compliqué) et c'est lui qui cherche le nombre ^^.
PS : et la proposition de lev avec une variable étant égale à 0 ou 1 s'appelle un boléen. Important à savoir ^^. | |
|
| |
Kyat Gentil Organisateur
Messages : 925 Date d'inscription : 24/07/2009 Age : 43
| Sujet: Re: [Tuto] Lua scripting et Toribash Mar 10 Mai 2011 - 23:33 | |
| - Destork a écrit:
- Après, tu peux mettre un goto pour réessayer
L'instruction goto n'existe pas en lua - Destork a écrit:
- PS : et la proposition de lev avec une variable étant égale à 0 ou 1 s'appelle un boléen. Important à savoir ^^.
Techniquement, il propose un integer (nombre entier). Il existe effectivement aussi le type de variable booléen (contenant une valeur True ou False). Mais dire que l'un est l'autre ainsi que compresser la logique telle que tu l'as fais ne va faire qu'une chose : embrouiller les novices. Si lev et moi avons pris le temps de détailler un gros post, c'est justement pour éviter au maximum les confusions que semble déjà faire nokturnal. | |
|
| |
*=-Nokturnal44-=* ToriDédié
Messages : 241 Date d'inscription : 09/04/2011 Age : 28 Localisation : Dans le bourg à côté de la boulangerie et en face de la pharmacie pas loin de la post.
| Sujet: Re: [Tuto] Lua scripting et Toribash Mar 30 Aoû 2011 - 20:21 | |
| J'ai essayer en .lua mais je me suis enbrouillé alors j'ai demander a un pote de me faire un petit cour(gratos) et voila j'ai tapé le code en C mais comment le passer en .exe? il m'a pas expliquer il est parti en vacance... - Code:
-
/*
Plus ou Moins ------------- Par matieu/Nokturnal44
*/
#include <stdio.h> #include <stdlib.h> #include <time.h>
int main ( int argc, char** argv ) { int nombreMystere = 0, nombreEntre = 0; const int MAX = 100, MIN = 1;
// Programme choisi un nombre au hasard
srand(time(NULL)); nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
do { // le joueur essaye un nombre printf("Quel est le nombre ? "); scanf("%d", &nombreEntre);
// Le programme compare les 2 chiffres
if (nombreMystere > nombreEntre) printf("C'est plus !\n\n"); else if (nombreMystere < nombreEntre) printf("C'est moins !\n\n"); else printf ("Bravo, vous avez trouve le nombre mystere !!!\n\n"); } while (nombreEntre != nombreMystere); return 0; }
Aussi il n'y a pas d'erreur? C'est possible d'utiliser le même code pour le .lua? | |
|
| |
Powerfish/CTbot ToriObsédé
Messages : 510 Date d'inscription : 15/06/2010 Age : 31 Localisation : Equestria
| Sujet: Re: [Tuto] Lua scripting et Toribash Mar 30 Aoû 2011 - 20:53 | |
| - Citation :
- j'ai tapé le code en C mais comment le passer en .exe?
bah tu compile... car le C est un langage compilé (sur le site du zéro, il te donne plusieurs adresses de compilateurs) - Citation :
- C'est possible d'utiliser le même code pour le .lua?
je ne pense pas, il y a des similitudes entre C et Lua, mais faut pas éxagérer^^ | |
|
| |
Contenu sponsorisé
| Sujet: Re: [Tuto] Lua scripting et Toribash | |
| |
|
| |
| [Tuto] Lua scripting et Toribash | |
|