[英]Java while loop random number
我是 Java 的新手,我正在尝试编写一个小的“格斗游戏”(实际上比打斗更随机)。 我希望每次出拳造成 0 到 30 之间的随机伤害数。问题是,随机排序的第一个数字将一直使用到最后(如果是 12,两名战士每回合都会受到 12 次伤害,直到玩家 1 获胜) . 如何在循环的每次迭代中生成不同的随机数,直到有赢家?
package jeu_propre;
public class main {
public static void main(String[] args){
System.out.println("Player 1, choose your name : ");
String nom_pone= new java.util.Scanner(System.in).nextLine();
System.out.println("Player 2, choose your name : ");
String nom_ptwo= new java.util.Scanner(System.in).nextLine();
int r=new java.util.Random().nextInt(30);
weapons fists = new weapons();
fists.name="fists";
fists.damage = r;
player number_one = new player();
number_one.name= nom_pone;
number_one.hp= 100;
player number_two= new player();
number_two.name=nom_ptwo;
number_two.hp= 100;
boolean running=true;
while (running == true) {
System.out.println("Fight !");
System.out.println(number_one.name +" hit " + number_two.name);
String frapper= new java.util.Scanner(System.in).nextLine();
System.out.println(fists.damage);
number_two.hp= number_two.hp -= fists.damage;
if (number_two.hp <=0) {
System.out.println(number_one.name +" wins !");
running=false;
break;
} else {
System.out.println(number_two.name + " still has "+number_two.hp);
running = true;
}
System.out.println("Fight !");
System.out.println(number_two.name +" hit " + number_one.name);
String frapper2= new java.util.Scanner(System.in).nextLine();
System.out.println(fists.damage);
number_one.hp= number_one.hp -= fists.damage;
if (number_one.hp<=0) {
System.out.println(number_two.name +" wins !");
running=false;
break;
}else {
System.out.println(number_one.name + " still has "+number_one.hp);
running = true;
}
}
我试图更改括号之间的值并将随机命令直接关联到“fists.damage”
基本上每次迭代都需要一个新的随机数。 因此,您应该将随机语句放在循环中。 然后只有它会在每次迭代时生成新的随机数。
在循环外定义 int r。 然后将语句从循环外移动到循环内。
r = new java.util.Random().nextInt(30);
fists.damage = r;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.