运行 每个循环在不同的时间间隔
Run each loop at a different time interval
我目前正在开发一个让两个模拟战士相互对抗的程序。我现在的方式是,每一轮都完成,输出一次打印出来(几乎是一次打印,因为它计算得很快)。
我将如何采用以下代码并使第二个循环中的操作以伪实时方式发生,其中它执行 x 秒数,其中 x 是随机滚动?任何建议或指导都会很棒。我什至会满足于每三秒左右执行第二个 while 循环。这是目前的原型,模拟会变得更加多样化,因此阅读输出可能会更有趣。
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
我目前正在开发一个让两个模拟战士相互对抗的程序。我现在的方式是,每一轮都完成,输出一次打印出来(几乎是一次打印,因为它计算得很快)。
我将如何采用以下代码并使第二个循环中的操作以伪实时方式发生,其中它执行 x 秒数,其中 x 是随机滚动?任何建议或指导都会很棒。我什至会满足于每三秒左右执行第二个 while 循环。这是目前的原型,模拟会变得更加多样化,因此阅读输出可能会更有趣。
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