簡體   English   中英

Java while循環隨機數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM