Signaler

Je ne trouve pas l'erreur dans mon program !! [Résolu]

Posez votre question Seiteki 3Messages postés vendredi 21 avril 2017Date d'inscription 21 avril 2017 Dernière intervention - Dernière réponse le 21 avril 2017 à 20:47 par valouvalivalo
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.


Afficher la suite 
Utile
+0
plus moins
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;

Seiteki 3Messages postés vendredi 21 avril 2017Date d'inscription 21 avril 2017 Dernière intervention - 21 avril 2017 à 14:55
Merci, maintenant que je vois mon erreur elle me parait toute bête, j'ai pas encor le niveau pou se genre d'exercice :)
Répondre
Donnez votre avis
Utile
+0
plus moins
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
jordane45 17251Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 25 mai 2017 Dernière intervention - 21 avril 2017 à 14:35
....
 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
Répondre
Seiteki 3Messages postés vendredi 21 avril 2017Date d'inscription 21 avril 2017 Dernière intervention - 21 avril 2017 à 14:59
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?
Répondre
valouvalivalo 128Messages postés lundi 16 février 2015Date d'inscription 26 mai 2017 Dernière intervention - 21 avril 2017 à 20:47
oui, le console.log fait pareil.
le math.floor permet d'arrondir a l'entier inferieur
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !