Je ne trouve pas l'erreur dans mon program !!

Résolu
Seiteki Messages postés 3 Statut Membre -  
valouvalivalo Messages postés 153 Statut Membre -
Bonjour, je suivais un tuto sur Youtube ( qui date de 2012, donc aucune chance de demander de l'aide dans les commentaires), et pour connaitre son niveau il y avait un exercice simple(voici le lien de la vidéo: https://www.youtube.com/watch?v=r52izpVnCGY&list=PLB87FA10C02CC3CA8&index=12 ), mais mon programme
(c'est du JavaScript) ne fonction pas correctement, la boucle while est censé se répéter jusqu'à que la vie de un des personnages atteigne zéro, or elle s’arrête des que l'attaque de l'un des personnages réussi.
voici le code:


#pragma strict


function Start () {

var vieHeros:int = 100;
var vieEnnemi:int = 100;

Debug.Log("je suis Link");
Debug.Log("je suis Armos");

 while(vieHeros > 0 && vieEnnemi > 0)
 {   Debug.Log("vie de link: " + vieHeros);
  Debug.Log("vie de armos: " + vieEnnemi);

  Debug.Log("link attaque!");
  var attaqueHeros:int;
  attaqueHeros = Random.Range(1,6);
  if(attaqueHeros == 1){
  vieEnnemi =- 10;
  Debug.Log("link a enlevé 10 pv à armos!");
  }else{
  Debug.Log("link a échoué!");
  }

  Debug.Log("armos attaque!");
  var attaqueEnnemi:int;
  attaqueEnnemi = Random.Range(1,6);
  if(attaqueEnnemi == 1){
  vieEnnemi =- 10;
  Debug.Log("armos a enlevé 10 pv à link!");
  }else{
  Debug.Log("armos a échoué!");
  }
 }
 Debug.Log("fin de partie");
 if(vieEnnemi == 0){
  Debug.Log("link gagne!");
 }else{}
 if(vieHeros == 0){
  Debug.Log("armos gagne!");
 }else{}
}



EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.


2 réponses

jordane45 Messages postés 40050 Statut Modérateur 4 754
 
Bonjour,
vieEnnemi =- 10;

Donc la variable vieEnnemi est égale à moins dix ....

Si tu veux soustraire 10 ... il faut écrire
vieEnnemi  -= 10;



et puis
if(attaqueEnnemi == 1){
  vieEnnemi =- 10;

... ne serait-ce pas la vie du héro dans ce cas ?
if(attaqueEnnemi == 1){
  vieHeros  -= 10;

0
Seiteki Messages postés 3 Statut Membre
 
Merci, maintenant que je vois mon erreur elle me parait toute bête, j'ai pas encor le niveau pou se genre d'exercice :)
0
valouvalivalo Messages postés 153 Statut Membre 38
 
Bonjour,

var vieHeros = 100; 
var vieEnnemi = 100; 

console.log("je suis Link"); 
console.log("je suis Armos"); 

while(vieHeros != 0 && vieEnnemi != 0) 
{ 
 console.log("vie de link: " + vieHeros); 
 console.log("vie de armos: " + vieEnnemi); 

 console.log("link attaque!"); 
 var attaqueHeros; 
 attaqueHeros = Math.floor((Math.random() * 6) + 1);

 if(attaqueHeros == 1)
 { 
  vieEnnemi = vieEnnemi - 10; 
  console.log("link a enlevé 10 pv à armos!"); 
 }
 else console.log("link a échoué!"); 

 console.log("armos attaque!"); 
 var attaqueEnnemi; 
 attaqueEnnemi = Math.floor((Math.random() * 6) + 1);
 
 if(attaqueEnnemi == 1)
 { 
  vieHeros =vieHeros- 10; 
  console.log("armos a enlevé 10 pv à link!"); 
 }
 else console.log("armos a échoué!"); 
} 
console.log("fin de partie"); 
if(vieEnnemi == 0){ 
console.log("link gagne!"); 
}else{} 
if(vieHeros == 0){ 
console.log("armos gagne!"); 
}else{} 
}

la sa marche mieux
0
jordane45 Messages postés 40050 Statut Modérateur 4 754
 
....
 vieEnnemi = vieEnnemi - 10; 

peut s'écrire .. comme je l'ai marqué dans ma réponse précédente :
  vieEnnemi -=  10; 


...
la sa marche mieux

la ça marche mieux
0
Seiteki Messages postés 3 Statut Membre
 
Merci pour ta réponse mais dans ton programme il y a des terme que je n'est pas encor apprise comme math.floor et console.log non-plus mais je pense que sa fonctionne comme un Debug.Log non?
0
valouvalivalo Messages postés 153 Statut Membre 38
 
oui, le console.log fait pareil.
le math.floor permet d'arrondir a l'entier inferieur
0