Hey everybody !
Here's my problem : I'm trying to write a very simple program, since I started learning
Java yesterday... It's a fight between two guys, and you can choose to "attack" or to "limit break". By the way, to see if you hit or not, you have to answer to a math exercise, hard if you take limit break, but ends up giving more damage, and easy if you take attack, but deals less damage.
So my problem is : if the player enters "attaque" or "Attaque", do the if statement. This works.
Then, else if player writes "limit break", "Limit Break" or "Limit break", do the block of code. This works too.
If the player enters something else, then the opponent damages the player for a few HP.
What's wrong is : When I enter "attaque" or "Attaque", if I answer right, my opponent takes 25 dmg, if I answer wrong, I take 25 dmg. But when my loop starts again at the beginning of the function, then it automatically does the "else" statement and I take 10 damage.
Here's the code : ( in french )
import java.util.Scanner;
public class combat_maths {
public static void main (
String args[] ){
Scanner input = new Scanner(System.in);
String type;
double calcul;
double damage;
double enemy_hp;
double hp;
enemy_hp = 100;
hp = 100;
do {
System.out.println ( "Choisissez une attaque : écrivez 'attaque' ou 'limit break'.");
type = input.nextLine();
if ( type.equals("attaque") | type.equals("Attaque") )
{ System.out.println("6*7 ?");
calcul = input.nextDouble();
if (calcul == 42) {
System.out.println ( "Vous frappez l'ennemi de toutes vos forces." );
enemy_hp = enemy_hp - 25; }
else { System.out.println ("Vous tentez une attaque, mais l'adversaire vous contre et vous mets un coup de boule !");
hp = hp - 25;
}
}
else if ( type.equals("limit break") | type.equals("Limit break") | type.equals("Limit Break") )
{ System.out.println ( "2*8*9*4*5 ?" );
calcul = input.nextDouble();
if ( calcul == 2880 ) {
System.out.println ("Vous projetez une boule de feu vers l'adversaire, puis vous bondissez sur lui et plantez votre épée dans son torse !");
enemy_hp = enemy_hp - 50;
}
else { System.out.println ("Vous préparez une boule de feu, mais le mercenaire adverse charge un éclair et vous le lance dessus. La charge vous frappe en pleine poitrine et vous sentez comme une odeur de grillé...");
hp = hp -50;
}
}
else {
System.out.println ("Alors que vous vous demandez que faire, le mercenaire vous frappe de son épée d'un coup vif et sournois.");
hp = hp - 10 ;
}
System.out.println (hp);
System.out.println (enemy_hp);
} while (hp > 0 && enemy_hp > 0) ;
if (hp <= 0) { System.out.println ("Alors que vous faiblissez, vous dérapez sur un caillou et l'ennemi saisi sa chance. L'épée sur la gorge, vous etes contraint d'abandonner... \n Vous n'etes pas fait pour etre un chevalier des maths.");
}
else if (enemy_hp <= 0){ System.out.println ("Vous bondissez sur l'ennemi chancelant et le frappez avec la garde de votre épée. Vainqueur, vous levez le bras. \n Vous etes accepter comme chevalier des maths !");
}
}
}
Please answer fast !
Thanks !
Oracion