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

Résolu
Seiteki Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
valouvalivalo Messages postés 131 Date d'inscription   Statut Membre Dernière intervention   -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 Date d'inscription   Statut Membre Dernière intervention  
 
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 131 Date d'inscription   Statut Membre Dernière intervention   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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
....
 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 Date d'inscription   Statut Membre Dernière intervention  
 
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 131 Date d'inscription   Statut Membre Dernière intervention   38
 
oui, le console.log fait pareil.
le math.floor permet d'arrondir a l'entier inferieur
0