Bonjour j'ai un problème pour un programme de distribution de points d'expérience après un combat.
Voici le code :
Code
:Get (S)
:Get (X)
:Disp "VOUS AVEZ","GAGNE",X,"POINTS D EXP"
:Pause
:P+X->P
:Disp "VOUS AVEZ",P,"EXP TOTAL"
:Pause
:While P<((50+(2*S))
:50+(2*S)->U
:Disp "IL VOUS RESTE",U,"EXP AVANT","LVL SUIVANT"
:Pause
S c'est le niveau du personnage
X l'exp gagné au combat
P l'exp total
U l'exp avant lvl suivant
Mon problème c'est que ma calculatrice ne modifie pas le P
Par exemple j'ai ça:
Vous avez gagné 3 points d'exp
Vous avez 3 exp total
Il vous reste 62 Exp avant lvl suivant
Et au 2eme, 3eme et 4eme essai toujours pas de changement alors que "vous avez ... exp au total" devrait augmenter
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 04 Jui 2013, 18:58
Il faut un Then pour pouvoir utiliser Else et End avec un If. Sans Then, le If ne contrôle que l'instruction suivante.
Je vois ton besoin comme :
Code
:Get (S)
:Get (X)
:Disp "VOUS AVEZ","GAGNE",X,"POINTS D EXP"
:Pause
:P+X->P
:Disp "VOUS AVEZ",P,"EXP TOTAL"
:Pause
:While P>50+2S // seuil
:S+1->S // gain niveaux si seuil dépassé
:End
:Disp "IL VOUS RESTE",50+2S-P,"EXP AVANT","LVL SUIVANT"
:Pause
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Merci pour ton aide mais j'ai toujours le problème de la variable P
J'ai l'impression qu'à chaque fois que le programme se lance P revient à 0 alors qu'a aucun moment je ne lui dis de le faire
Je pense que faire ça résoudrait le problème ? :
Code
:Get (P)
:Get (S)
:Get (X)
:Disp "VOUS AVEZ","GAGNE",X,"POINTS D EXP"
:Pause
:P+X->P
:Disp "VOUS AVEZ",P,"EXP TOTAL"
:Pause
:While P>50-2S
:S+1->S
:Disp "IL VOUS RESTE",50+2S-P,"EXP AVANT","LVL SUIVANT"
:Pause
:Send (P)
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 04 Jui 2013, 19:19
Que fais-tu avec des Get et Send de partout ?
La TI ne controle pas la notion de variable locale comme les languages Pascal,Basic,HP,C. Toutes les variables sont globales.
Sauf si tu as prévu une connexion entre deux calculatrices.
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 04 Jui 2013, 19:53
Le reste de ton projet doit utiliser P pour autre chose. Il faut soit stocker P ailleurs, par exemple dans une liste, soit changer le nom de la variable partout dans un des programmes.
Si tu indiquais l'ensemle du projet, se serait mieux pour savoir ce qui se passe.
Une structure pour un sous-programme peut être :
Code
//PROG
Repeat K=105
Repeat K
codeTouche->K
End
K-1->J // affectation avant appel
prgmTEST
Disp K
End
Code
//TEST
Disp K,J
J+1->K // "retour"
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Le programme d'attaque (il ne prends pas en compte l'attaque Contre le personnage) :
Code
:10->H
:0->B
:0->A
:0->Z
Lbl N
:Menu("Atttaque","Oui",D,"Non",E) // Je n'arrive toujours pas à bien utiliser les menus on verra vers la fin
:Lbl D
:ClrHome // purement esthétique
:(H-(int (rand(11))))->H // désolé pour toutes les paranthèses mais c'est pour être vigilant
:If H>0
:Then
:Disp "Vie",H
:Pause
:Goto N
:End
:If A=<0
:Then
:Disp "Il est K.O"
:6->S // je n'ai pas encore coder la partie niveau du personnage donc de base je met 6
:4->Teta //Idem pour les ennemis leur niveau sera proportionnel à la zone ou au niveau du personnage. De base je met 4
:(int ((Teta*5/S))->X
:Send (X)
:Send (S)
:PrgmXP
:End
:Lbl E
:Disp "Fuite" // Là est mon 2eme problème ! Après le prgmXP ma calculette affiche : "Fuite". Or elle ne devrait l'afficher qu'en cas de réponse "Non"
Et ensuite le programme d'exp :
Code
:Get (S)
:Get (X)
:Disp "VOUS AVEZ","GAGNE",X,"POINTS D EXP"
:Pause
:P+X->P
:Disp "VOUS AVEZ",P,"EXP TOTAL"
:Pause
:While P>50-5S
:S+1->S
:Disp "IL VOUS RESTE",50+2S-P,"EXP AVANT","LVL SUIVANT" // je voudrais que ce message s'affiche si et seulement si P<50-5S et non l'inverse
:Pause
:Else
Voila donc les programmes ont l'air de fonctionner, il ne reste plus qu'a les optimiser et la j'ai encore besoin de votre aide ! Merci d'avance !
Vraiment la programmation sur calculette c'est super addictif !!
Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mar 04 Jui 2013, 20:59
Alors déjà:
Les variables sont communes à toute la calculatrice.
Ainsi, si dans ton premier programme, tu modifie la variable A à 3, si tu accède à la variable A n'importe où depuis la calculette, elle vaudra toujours 3 jusqu'à ce que tu changes sa valeur...
Donc tes Send(X) Get(X) ne servent strictement à rien ici.
Code
:If A=<0
:Then
...
:PrgmXP
:End
:Lbl E
:Disp "Fuite" // Là est mon 2eme problème ! Après le prgmXP ma calculette affiche : "Fuite". Or elle ne devrait l'afficher qu'en cas de réponse "Non"
Voilà le problème: après être sortie de l'instruction If, la calto exécute l'instruction suivante: Lbl E... ce qui correspond à ne rien faire... Elle reprend donc après ce lbl, au niveau du disp
Ok pour les variables P, S, X, etc ... mais tu pourrais etre plus clair en ce qui concerne le Lbl 5 je dois faire quoi au juste ??? Parce que ce que tu me dis ne m'aide pas vraiment :/
Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mar 04 Jui 2013, 21:56
En fait, tu dois faire en sorte qu'après le End, tu n'éxécute pas l'instruction Lbl E.
Je suppose que tu veux qu'après avoir attaqué, on puisse attaquer à nouveau?
Dans ce cas, mets "Goto N" juste après le "End", avent le "Lbl E", ce qui te permet d'aller au "Lbl N", qui se trouve avant le menu.
Comme ça, tu ne liras pas ce qu'il y a après le Lbl E si tu choisis d'attaquer.
Ce qui donne grosso modo:
Code
Lbl N
Menu("Attaquer?","Oui",D,"Non",E
Lbl D
//Instructions pour attaquer
Goto N //On retourne au menu pour peut être attaquer de nouveau
Lbl E
//Instructions pour fuir puis quitter le prgm
------
Code
:While P>50-5S
:S+1->S
:Disp "IL VOUS RESTE",50+2S-P,"EXP AVANT","LVL SUIVANT" // je voudrais que ce message s'affiche si et seulement si P<50-5S et non l'inverse
:Pause
:Else
2 choses:
_Avec un While, il y a toujours un End.
_Si tu mets un Else, c'est qu'il y a un If avant.
Donc il ne faut pas mélanger les While et les Else...
La solution que t'avait proposé Linkakro correspond, je crois, à ce que tu demandes...
Pour le problème de la variable P, voilà ce que je te propose:
Il faudrait que tu stocke les informations que tu veux conserver d'une partie à l'autre (xp, niveau, etc) dans une liste personnalisée (c'est ce que je ferai personnellement).
Je te montre comment t'y prendre:
Admettons que tu ais en premier terme l'xp, et en deuxième terme le niveau, dans une liste nommée EXP.
(L* correpondra au petit "L" que tu trouves en faisant [2nd]+[listes] dans [ops] (c'est le dernier choix normalement)
Code
L*EXP(1->P //On récupère l'xp dans la liste
L*EXP(2->S //puis le niveau
//Tu gères l'xp gagné et le niveau
//Maintenant on sauvegarde en modifiant la liste
P->L*EXP(1
S->L*EXP(2
Pour créer cette liste, il suffit de définir sa dimension au début du prgm: si elle existait, il ne se passera rien, sinon, elle sera crée, et remplie de 0
Code
2->dim(L*EXP //En admettant que tu n'as que 2 infos à sauvegarder
-------
Citer : Reptilon
:Menu("Atttaque","Oui",D,"Non",E) // Je n'arrive toujours pas à bien utiliser les menus on verra vers la fin
Tout d'abord j aimerais te remercier pour ton implication
Ensuite, pour le Lbl E
Code
:Goto N
:Lbl E
:ClrHome
:Disp "Fuite"
Cela me permet bien d éviter le "Fuite" mais après l obtention de l exp on retourne au combat et je voudrais que l on n y retourne pas justement alors si je remplace Goto N par un autre un Exec d un autre programme, est-ce que cela marchera quand même ?
-------
Le While / end m entraîne une boucle infinie :/ pas terrible alors faut-il également le remplacer par un If ?
Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 05 Jui 2013, 0:17
Pour le Goto N
Tu n as qu a le remplacer par un Goto xx (xx etant 1 caractere (chiffre ou lettre) ou 2 (tu peux melanger les chiffres et les lettres si tu veux))
Et tu mets un Lbl xx (avec le(s) meme(s) caracteres qu au Goto) la ou tu veux te rendre dans le meme prgm.
Le goto permet donc d aller au lbl correspondant
------
Pour le While/If
La je te laisses choisir mais le probleme avec le if c est que si tu montes de 2 lvl d un coup, il ne te fera monter que d un seul...
Le while permet de regler ce probleme (la boucle infinie venait d une erreur de signe (ce n est pas 50-5S mais 50+5S qu il faut mettre))
------
Pour les listes je t explique plus en details demain
Edit:
J ai vu que tu avais mal utilise l instruction if
Il y a 3 cas possibles pour cette instruction
1 cas:
Code
If condition
//instruction a executer sur une seule ligne si la condition est verifiee
2 cas:
Code
If condition
Then
//instructions a executer
//sur plisieures lignes si la condition est verifiee
End
3 cas:
Code
If condition
Then
//instructions a executer si la condition est verifiee
Else
//instructions si elle n est pas vraie
End
Donc:
Un if seul ne necessite pas de End mais n admet pas de Else
Un if then necessite un End et permet (facultatif) un Else
La boucle While (de meme que repeat/for...) quand a elle necessite forcement un End, mais n admet aucun Else
Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 05 Jui 2013, 10:28
Alors, pour les listes:
Tout d'abord, une liste est une suite de nombres:
Ex:
{2,3,8,1,0.56} est une liste de 5 nombres.
Sur la calto, tu as 6 listes "classiques", de L1 à L6, que tu peux utiliser en faisant [2nde]+un chiffre de 1 à 5 sur le pavé numérique.
Le problème de ces listes, c'est que n'importe quel programme peut les utiliser, et tu peux donc perdre tes données...
Pour accéder au Nème terme de la liste, il suffit de faire:
Code
2->dim(L1 //On fixe la dimension de la liste à 2
L1(1->A //On récupère le premier terme de la liste et on le stocke dans A
2->B
5+B->L1(2 //On met la somme de 5 et B (7) dans le 2ème terme de la liste
2*L1(2->L1(1 //Le premier terme de la liste sera égal au double du second
On aura donc la liste L1:
{14,7}
Il existe donc un autre type de listes qui sont les listes personnalisées: Tu peux leur donner le nom que tu veux.
Pour les utiliser, il suffit d'utiliser le petit "L" que je t'ai indiqué, puis de taper le nom que tu veux.
Ex:
L*EXP
L*LIST
sont des listes personnalisées.
Dans ton cas:
(Je fais pour si tu n'as que 2 variables à sauvegarder, si tu veux en sauver plus, il suffit de changer la dimension de la liste).
Au début du programme, il faut que tu "annonce" la dimension de ta liste (L*EXP pour l'exemple):
Code
2->dim(L*EXP //On créé donc une liste qui pourra contenir 2 nombres distincs
A partir de là, il y a 2 cas possibles:
_La liste était déjà créée (tu avais déjà lancé le prgm) auquel cas, il ne se passe rien, les 2 nombres sont conservés
_La liste n'existait pas, elle vient donc d'être créée, et tous ses termes valent 0.
Pour utiliser les valeurs de la liste (on considère que le premier terme contient l'xp, et le second le niveau):
Code
L*EXP(1->P //On récupère l'xp
L*EXP(2->S //On récupère le niveau
//Là, tu fais les calculs pour retrouver le nouvel xp et le nouveau niveau
//Ensuite, tu sauvegarde l'xp et le niveau
P->L*EXP(1
S->L*EXP(2
Et voilà, tant qu'un autre prgm n'a pas l'idée d'utiliser la même liste perso que toi (ce qui est fort peu probable), ton xp et ton niveau sont en sécurité
---------
Pour gérer les attaques de l'IA:
(Je considère ici que la vie de ton personnage est contenue dans A, celle de l'ennemi dans B)
Code
ClrHome
Disp "VOUS ATTAQUEZ //Pour indiquer qui fait quoi
3+int(11rand->D //On calcule les dégâts qu'on fait (ici entre 3 et 13)
Disp "DEGATS INFLIGES:",D //On affiche les dégâts
B-D->B //On calcule la vie de l'ennemi
If B<0 //Pour le cas où il est K.O. avec moins de 0 pv
0->B
Disp "IL LUI RESTE",B,"PV
Pause
If B //Si l'ennemi est vivant, sinon, il ne peut pas attaquer
Then
Disp "L'ENNEMI RIPOSTE! //Pour indiquer qui fait quoi
2+int(6rand->D //On calcule les dégâts qu'il fait (ici entre 2 et 7)
Disp "DEGATS INFLIGES:",D //On affiche les dégâts
A-D->A //On calcule la vie qu'il nous reste
If A<0 //Pour le cas où on est K.O. avec moins de 0 pv
0->A
Disp "IL VOUS RESTE",A,"PV
Pause
End
//Et puis maintenant tu gères qui est mort, etc
Voilà, après tu peux essayer de faire varier les dégâts en fonction du niveau du personnage et de l'ennemi par exemple
Merci pour ton aide pour l ajout des dégâts de l'IA ^^
Et ... Tu vas croire que je fais exprès mais je pige rien aux listes déjà pour les dimensions si je choisi une dimension 3 c est que je peux mettre un 3 chiffres par exemple le personnage peut aller jusqu'au niveau 100 donc je peux stocker tous les niveaux ? Par ex : 10-16-37-47-67-79-100 etc ...
Et pour l exp ? La même chose ?
Si je veux récupérer le niveau de la liste au début du combat je fais comment ? Et pour récupérer l exp au début du programme exp ?
---------
Aussi je me demandais si on pouvait faire des "checkpoints" . Par exemple un choix est bloqué, et si on accomplis un objectif le choix est débloqué
Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 05 Jui 2013, 15:53
La dimension de la liste, c'est le nombre de nombres ( ) que tu peux stocker. Donc si tu mets dimensions 3, ça ne limite pas le nombre de 0 à 999, mais ça te permet de stocker 3 nombres rééls distincts.
Je vais te prendre un exemple tout bête:
Tu as 2 notes en maths et tu veux calculer la moyenne:
Tu vas stocker la première dans A, la seconde dans B (ou d'autres variables peu importes).
Mais maintenant, imagine que tu ais 30 notes (on va dire que c'est la moyenne annuelle )
Comment faire?
Tu ne peux pas utiliser 30 variables, il n'y en a pas assez, et ce serait compliqué...
La solution c'est d'utiliser une liste.
Tu auras donc une liste de notes.
Tu déclare la dimension à 30 (pour stocker 30 notes ddifférentes dans la même liste).
Par exemple, si tu choisis de les mettre dans L1:
Code
30->dim(L1
15->L1(1
5->L1(2
8->L1(3
...
20->L1(30
Et voilà: tu as une liste qui contient les 30 notes de maths
Tu accède donc à la Nième note en faisant L1(N).
Une liste c'est donc comme plusieurs variables qui sont rangées dans une plus grande variable (la liste).
Donc une liste de taille N contient N variables différentes...
------
Dans ton cas:
Tu n'as que 2 infos à retenir d'une partie sur l'autre: Le niveau et l'xp.
Seulement, tu ne peux pas utiliser les variables classiques (elles sont utilisées dans toute la calto, tu risques de perdre les données).
Tu dois donc utiliser une liste qui ne contiendra que 2 "variables": le niveau et l'xp.
Elle aura donc une dimension égale à 2.
Après c'est à toi de définir si tu veux que le niveau soit dans la première ou la deuxième case (ça ne changera rien).
------
Pour les "checkpoints"
Je te conseille d'utiliser encore une fois une liste personnalisée (dis moi si tu n'as toujours pas compris le principe )
Je prend un exemple:
Imaginons que tu veilles faire un menu qui demande comment on veut attaquer, mais que pour utiliser un sort il faut débloquer quelque chose.
Code
4->dim(L*CHECK //On considère qu'il n'y a que 4 checkpoints, celui qui nous intéresse sera le premier
Lbl M
Menu("ATTAQUER","POINGS",A,"MAGIE",B,"FUIR",C
Lbl A
//On attaque avec les poings
...
Lbl B
If 0=L*CHECK(1 //Si il n'a pas été débloqué, il est toujours à 0
Goto M //Dans ce cas, on retourne au menu
//Sinon, on lance un sort
Et pour débloquer le checkpoint, il suffit de mettre le terme de la liste à 1:
Code
//Super action qui débloque la magie
1->L*CHECK(1 //On peut maintenant utiliser la magie !
EDIT:
Pour les listes, si tu n'as toujours pas compris le principe, je te renvois ici
Sinon, je ne sais pas si tu as déjà programmé dans un autre langage, mais c'est le même principe (grosso modo) que les tableaux en C/C++ et autres.
D'abord j'ai un problème avec les listes ... je pense avoir compris comment y attribuer une valeur MAIS :
-Si je change la valeur dans ma calto en faisant 0->S la valeur est aussi changé dans la liste alors qu'a la base je pensais que la liste était faite pour protéger les valeurs, voici l'incrustation dans l'attaque :
Code
:Then
:Disp "Il est K.O"
:2->dim (L2)
:S->L2(2) // je suppose que c'est la source du problème :/
:4->Teta
:int ((Teta*50)/L2(2))->X
:PrgmXP
:End
:Goto Q
Et ensuite dans le prgmXP :
Code
:Pause
:P+X->P
:2->dim (L2) // pour être sur
:P->L2 (1)
.........
:While P>50+20L2(2)
:L2(2)+1->S
:S->L2 (2)
:0->P
.....
Autorisation : Membre
Nb de messages : 8
Inscrit le : Mer 05 Jui 2013, 17:20
Posté le : Mer 05 Jui 2013, 17:24
Je viens de m'inscrire je pourrais maintenant éditer mes messages car j'ai supprimer le S->dim(L2) dans le programme attaque et ça a l'air de fonctionner
Ensuite pourrais tu m'expliquer comment créer un menu d'attaque avec par ex :
-Attaque ---> Autre menu avec différentes attaques
-Inventaire ---> Menu avec des objets
-Personnage ---> Caractéristiques
-Fuite --> Quitter le combat
Merci
---------------------- Mon premier programme sur calto :
Combat avec choix d'élément + Exp
Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 05 Jui 2013, 17:39
Bienvenu sur le fofo en tant que membre !
Je ne sais pas trop d'où venait le problème, mais je ne comprends pas trop ce que tu as changé: où avais tu mis S->dim(L2) ?
Par contre: inutile de mettre 2->dim(L2) à tout bout de champs: mets le 1 fois au début du programme et ça ne bouge plus
Poste le prgm en entier que je vois d'où viens le problème, j'ai du mal à me repérer là
Mais en fait je crois que c'est parce que tu n'as plus besoin de P et de S du coup: utilise directement la liste.
Ex:
Code
:P+X->P
2->dim (L2) // pour être sur
P->L2 (1)
.........
While P>50+20L2(2)
L2(2)+1->S
S->L2 (2)
0->P
Tu peux le remplacer, tout simplement par:
Code
L2(1)+X->L2(1
.........
While L2(1)>50+20L2(2
L2(2)+1->L2(2
Et tu mets le 2->dim(L2 au tout début du prgm
Par contre, un conseil: évite d'utiliser L2: c'est une liste que pas mal de programmes risquent d'utiliser...
Fais toi plutôt une liste personnalisée (petit "L" + nom de la liste)
-------
Pour les menus:
Il suffit de faire un menu dont certains choix renvoient à des Lbl qui précèdent d'autres menus...
Illustration:
Code
Lbl M
Menu("QUE FAIRE?","ATTAQUER",A,"FUIR",B
Lbl A
//On choisit le type d'attaque
Menu("ATTAQUER","COUP DE POINGS",C,"MAGIE",D,"RETOUR",M
Lbl C
//On attaque avec un coup de poing
...
Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 05 Jui 2013, 18:11
Peut être que les listes personnalisées n’existent pas sur la Ti-82... Je n'en ait jamais eut donc je ne sais pas...
Pour les menus, tu peux faire comme tu veux: soit tu mets tout dans le prgm d'attaque pour ne pas gaspiller de la place, soit tu créé d'autres prgm pour plus de lisibilité/compréhensibilité du code, à toi de voir.
EDIT: J'ai testé sur émulateur, et, à priori, les listes personnalisées ne sont pas sur ce modèle
Autorisation : Membre
Nb de messages : 8
Inscrit le : Mer 05 Jui 2013, 17:20
Posté le : Mer 05 Jui 2013, 18:31
Apparemment on ne peux pas créer de liste perso. sur la TI 82 ...
Le programme marche nickel ! Plusieurs choix d'attaque, HP du personnage en fonction de son niveau, variables sauvegardées dans une liste, niveau et HP de l'adversaire en fonction du personnage !
Si tu veux le programme je te demanderai d'attendre que je récupère un câble calto/pc d'ici quelques jour ^^
Merci de ton aide mais je n'ai pas fini d'en avoir besoin
---------------------- Mon premier programme sur calto :
Combat avec choix d'élément + Exp
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 05 Jui 2013, 19:13
Je confirme : la TI82 n'a pas de listes personnalisées.
Et le manuel est un encore plus sûr moyen de le vérifier.
Nous sommes toujours là pour aider.
(m@thieu41 me voles la vedette dès que j'ai le dos tourné, MDR
beau travail)
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Autorisation : Membre
Nb de messages : 8
Inscrit le : Mer 05 Jui 2013, 17:20
Posté le : Jeu 06 Jui 2013, 19:39
Ah ah ah ! nouveau problème !
J'ai voulu ajouter dans une liste 3 catégories de personnage
L5 (1) = 1 ----> Feu
L5 (1) = 2 ----> Eau
L5 (1) = 3 ----> Plante
On choisit son personnage et le numéro dans la liste change. Ensuite j'ai copié 3 fois le programme Attaque et l'ai mis dans un seul avec 1 If L5 (1) = x au début de chaque et un End a la fin (de chaque)
Problèmes :
1-La calto n'exécute que le If pour L5 (1) = 1
Or si L5 (1) = 2 il exécute L5 (1) =1
Je sais pas si vous avez compris
2- A la fin du combat on ne va plus dans le programme XP mais on revient au début du programme Attaque ...
Help
---------------------- Mon premier programme sur calto :
Combat avec choix d'élément + Exp