2015-12-22 3 views
0

Хорошо, ребята, так что медведь со мной, мне нужно добавить панель здоровья, но прежде чем добавить бар здоровья, мне нужно заставить его работать правильно.Rng Kind сломан?

Проблема: Когда я запустил ее, и она рулонах, она приземлится на число и выберет хит, когда он определит, что он проходит через несколько типов хитов, а не только один. Попробуйте запустить его, если хотите. Надеемся, что комментарии помогут.

Что Ive пытался: я попытался прекрасно прочесывать все, но после того, как около 2 часов тонкой настройки и не дал никаких результатов поиска решения я обратился к здесь ....

Импорта: импорта javax.swing .JOptionPane; import java.util.Random;

Декларирование значения:

int life = 100; //Your life 
    int life2 = 100; //Enemy life 
    Random chance = new Random(); 



while (life >= 0 && life2 >= 0){ //loop 
int hitchance = chance.nextInt(100)+1; 
System.out.println(hitchance); //Your roll 
if (hitchance <= 20){//Miss 
    JOptionPane.showMessageDialog(null, "You have missed your opponent like a fool.\nYour Opponent has "+life2+" health remaining."); 

} 
if (hitchance >= 21 && hitchance <= 34){//Wiff 
    int Wiff = chance.nextInt(10)+1; 
    life = life-Wiff; 
    JOptionPane.showMessageDialog(null, "You have stubbed your toe. Idiot.\nYou have "+life+" health remaining." +Wiff); 

} 
if (hitchance >= 35 && hitchance <= 74){//Regular Hit 
    int regHit = chance.nextInt(20)+1; 
    life2 = life2-regHit; 
    JOptionPane.showMessageDialog(null, "You have hit your opponent for "+regHit+" damage!\nThey have "+life2+" health remaining."); 

} 
if (hitchance >= 75 && hitchance <= 90){//CritHit 
    int critHit = chance.nextInt(40)+1; 
    life2 = life2-critHit; 
    JOptionPane.showMessageDialog(null, "You have dealt critical damage! "+critHit+"\nThey have "+life2+" health reamining."); 

} 
if (hitchance >= 91 && hitchance <= 100) {//Fatality.  
    JOptionPane.showMessageDialog(null, "Fatality!\nYou stabbed your opponent in the foot,\ndrug your knife throught" 
      + "his belly,\nand impaled his head on your knife!"); 
    System.exit(0); 

} 

int hitchance2 = chance.nextInt(100)+1; 
System.out.println(hitchance2); //Enemy roll 
if (hitchance2 <= 20){//Miss 
    JOptionPane.showMessageDialog(null, "Your opponent has missed you.\nYou have "+life+" health remaining."); 

} 
if (hitchance2 >= 21 && hitchance <= 34){//Wiff 
    int Wiff = chance.nextInt(10)+1; 
    life2 = life2-Wiff; 
    JOptionPane.showMessageDialog(null, "Your enemy has stubbed his toe. Idiot.\nThey have "+life2+" health remaining." +Wiff+" Damage dealt."); 

} 
if (hitchance2 >= 35 && hitchance <= 74){//Regular Hit 
    int regHit = chance.nextInt(20)+1; 
    life = life-regHit; 
    JOptionPane.showMessageDialog(null, "Your opponent has hit you for "+regHit+" damage!\nYou have "+life+" health remaining."); 

} 
if (hitchance2 >= 75 && hitchance <= 90){//CritHit 
    int critHit = chance.nextInt(40)+1; 
    life = life-critHit; 
    JOptionPane.showMessageDialog(null, "Your opponent has dealt critical damage! "+critHit+"\nYou have "+life+" health reamining."); 

} 
if (hitchance2 >= 91 && hitchance2 <= 100) {//Fatality.  
    JOptionPane.showMessageDialog(null, "Fatality!\nYour opponent stabbed you in the foot,\ndrug their knife through" 
      + "your belly,\nand impaled your head on his knife!"); 
    System.exit(0); 

} 
} 
} 
} 
+0

Я чувствую, что проблема в логике ..... –

ответ

0

Есть несколько условий, в коде, который не кажется правильным, например,

hitchance2 >= 21 && hitchance <= 34 

Это объясняет, почему у вас могут быть случайные удары.

+0

Спасибо, мужчина, Это вторая копия, где сделано несколько меньше изменений, например. есть несколько текстовых ошибок с неправильной грамматикой –

+0

На самом деле теперь, когда я изменил те, что он работает хорошо, как я могу включить JProgressBar в hp? или вы думаете, что другой индикатор прогресса будет работать лучше? –

Смежные вопросы