Programmer avec le langage Linotte
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Programmer avec le langage LinotteConnexion

Besoin d'un conseil sur la programmation en Linotte ?

Le deal à ne pas rater :
Aliexpress : codes promo valables sur tout le site
Voir le deal

descriptionBeug de casiers internes EmptyBeug de casiers internes

more_horiz
Salut, voici un script qui ne marche pas:

Livre : Dual Monsters
(Spécification Linotte 0.6.0)
(AUTEUR: V.D.)

Espèces :
nom est un texte
effet est un texte valant "Aucun effet"
att est un texte valant "ATK:"
attaque est un nombre
def est un texte valant "DEF:"
défense est un nombre
l'espèce monstre contient un nom, un effet, une att, une attaque, une def, une défense

Grands rôles :
cartesmonstres est un casier de monstre
monstre01 est un monstre, nom est "Monstre 01", attaque vaut 1200, défense vaut 1400

Paragraphe : présentation
efface le tableau
cartesmonstres !


pour qu'il y ait quelque chose d'affiché, il faut dire à Linotte d'ajouter monstre01 dans cartesmonstres.
C'est une perte de temps, s'il y a pleins de monstres à mettre dans le casier...

descriptionBeug de casiers internes EmptyBeug de casiers internes

more_horiz
tu voudrais que le casier soit automatiquement "rempli" par tous les acteurs "monstre" existants ?

c'est vrai que ça peut devenir long de tous les ajouter un par un, d'où l'intéret des boucles !
voici par exemple :

pour chaque X , lis
concatène "monstre" , joker dans TEXTE
crée TEXTE un acteur monstre
ajoute <
TEXTE>
dans CASIER_MONSTRES
ferme

cela s'apelle de la création dynamique et je crois qu'on en a déja parlé ! ^^
l'avantage , c'est qu'on peut crer un millier de monstre juste en changeant la valeur de X
tu peux aussi ajouter des lignes avant le "ferme" pour régler l'attaque de tous les monstres à 500 ( par exemple )

une boucle, ça parait tres moche de premier abord, mais en fait c'est tres utile !

pour chaque X , lis ->
la , tu dis à Linotte le nombre de lectures de la boucle , en l'occurence, ce sera le nombre X
concatène "monstre" , joker dans TEXTE ->
Le TEXTE contiendra "monstre" suivi d'un nombre de 0 (le joker d'une boucle commence à zéro ) jusqu'au nombre précédent X . C'est à dire si X = 128 , il y aura 128 monstres appelés "monstre0" , "monstre1" , ... , "monstre127".
crée TEXTE un acteur monstre ->
il s'agit juste de dire à Lintte de creer un acteur monstre qui s'appellera selon le contenu de TEXTE
ajoute <
TEXTE>
dans CASIER_MONSTRES ->
Linotte ajoute l'acteur nommé par TEXTE (c'est à dire le monstre que l'on vient de créer ) dans le CASIER_MONSTRES
ferme ->
la boucle est finie . Linotte retourne au "lis" pour recommencer la boucle jusqu'à la Xeme fois

deux avantages : _tu peux créer autant de monstres que tu veux
_tu n'a meme pas à les déclarer dans "les grands roles"

et puis, dans la solution que tu proposes à Ronan, ( qu'un casier d'espece contienne tous les acteurs de la dite espece )
tu ne pourrais pas ;
par exemple, faire deux casiers "monstres_equipe_1" et "monstres_equipe_2" puisque les deux casiers contiendraient chacun tous les acteurs monstres connus de linotte

descriptionBeug de casiers internes EmptyBeug de casiers internes

more_horiz
Aaaaaa..... en effet! Je n'avais pas pensé à la boucle :s ...
Je pense que je n'ai pas encore le "petit plus" du programmeur avancé... Je n'ai pas l'esprit assez large...

En tout cas, merci! <img src=" title="Smile" />

descriptionBeug de casiers internes EmptyBeug de casiers internes

more_horiz
Ah... il y a un beug au niveau de :

crée TEXTE un acteur monstre
ajoute <
TEXTE>
dans cartesmonstres
ferme

à la phrase: (qui est en rouge)
crée TEXTE un acteur monstre

descriptionBeug de casiers internes EmptyBeug de casiers internes

more_horiz
c'est sans doute une histoire d'orthographe ... essaie avec "créé TEXTE un acteur monstre "

descriptionBeug de casiers internes EmptyBeug de casiers internes

more_horiz
Ah ,en effet^^ merci^^

descriptionBeug de casiers internes EmptyBeug de casiers internes

more_horiz
Voici le script:


livre: test

Espèces :
nom est un texte
effet est un texte valant "Aucun effet"
att est un texte valant "ATK:"
attaque est un nombre
def est un texte valant "DEF:"
défense est un nombre
l'espèce monstres contient un nom, un effet, une att, une attaque, une def, une défense

les grands rôles:
CASIER_MONSTRES est un casier de monstres
TEXTE est un texte

paragraphe: test
pour chaque 1 , lis (la , tu dis à Linotte le nombre de lectures de la boucle , en l'occurence, ce sera le nombre X)
concatène "monstre" , joker dans TEXTE (Le TEXTE contiendra "monstre" suivi d'un nombre de 0 [le joker d'une boucle commence à zéro] jusqu'au nombre précédent X . C'est à dire si X = 128 , il y aura 128 monstres appelés "monstre0" , "monstre1" , ... , "monstre127".)
créé TEXTE un acteur monstres (il s'agit juste de dire à Linotte de creer un acteur monstre qui s'appellera selon le contenu de TEXTE)
ajoute <
TEXTE>
dans CASIER_MONSTRES (Linotte ajoute l'acteur nommé par TEXTE [c'est à dire le monstre que l'on vient de créer dans le CASIER_MONSTRES)
CASIER_MONSTRES !
ferme (la boucle est finie . Linotte retourne au lit pour recommencer la boucle jusqu'à la Xeme fois)

descriptionBeug de casiers internes EmptyBeug de casiers internes

more_horiz
Voici ce que ça donne:


Aucun effet
ATK:
0
DEF:
0

Aucun effet
ATK:
0
DEF:
0

Aucun effet
ATK:
0
DEF:
0

Aucun effet
ATK:
0
DEF:
0

Aucun effet
ATK:
0
DEF:
0

Aucun effet
ATK:
0
DEF:
0

Aucun effet
ATK:
0
DEF:
0

Aucun effet
ATK:
0
DEF:
0

Aucun effet
ATK:
0
DEF:
0

Aucun effet
ATK:
0
DEF:
0

Aucun effet
ATK:
0
DEF:
0

descriptionBeug de casiers internes EmptyBeug de casiers internes

more_horiz
Je crois que ca ne marche pas... car je pense que la fonction d'afficher un casier n'est pas encore totalement correcte...

descriptionBeug de casiers internes EmptyBeug de casiers internes

more_horiz
parfois, les casiers restent remplis entre plusieurs lectures de livres.
Essaie donc de vider le casier avant la boucle...

descriptionBeug de casiers internes EmptyBeug de casiers internes

more_horiz
Ah, en effet^^

descriptionBeug de casiers internes EmptyBeug de casiers internes

more_horiz
Sinon,
comment peut-on faire pour que ce script soit bon? :

si réponsedel'utilisateur est égale à baseinterne alors...

on ne connait pas la taille de baseinterne.

descriptionBeug de casiers internes EmptyRe: Beug de casiers internes

more_horiz
privacy_tip Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
power_settings_newSe connecter pour répondre