簡體   English   中英

以不同的時間間隔運行每個循環

[英]Run each loop at a different time interval

我目前正在開發一個讓兩個模擬戰士相互對抗的程序。 我現在的方式是,每一輪都完成,output 一次打印出來(幾乎是一次打印,因為它計算得很快)。

我將如何使用下面的代碼並使第二個循環中的操作以偽實時方式發生,其中它執行 x 秒數,其中 x 是隨機滾動? 任何建議或指導都會很棒。 我什至會滿足於每三秒左右執行第二個 while 循環。 這是目前的原型,模擬將變得更加多樣化,因此閱讀 output 可能會變得更有趣。

public static void fight(Character player1, Character player2, int roundMax){
        player1.setTempHitPoints(player1.getHitPoints());
        player2.setTempHitPoints(player2.getHitPoints());
        int r = ROUND;
        while(!isFightOver(player1, player2)){
            roundTimer = 0;
            System.out.println("================");
            System.out.println("Round " + r + " FIGHT!");
            System.out.println("================");
            while(roundTimer < roundMax && !isFightOver(player1, player2)){
                roundTimer = roundTimer + Commands.roll(10);
                round(player1, player2);
                timerPrint(roundTimer, roundMax);
            }
            System.out.println("================");
            System.out.println("Round " + r + " OVER!");
            System.out.println("================");
            System.out.println("");

            if(!isFightOver(player1, player2)){
                Commands.rest(player1);
                Commands.rest(player2);
            }
            System.out.println("");
            r++;
        }
            declareWinner(player1, player2);
    }

您可以使用Thread.sleep()來減慢處理速度。 例如, Thread.sleep(1000)導致當前線程暫停執行一秒鍾(1000 毫秒)。 您能否明智地使用該方法來延遲代碼? 您可以使用java.util.Random生成隨機數。

Random random = new Random();

Thread.sleep((random.nextInt(6) + 1) * 1000);  // Delays from 1 - 6 secs

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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