【问题标题】:How to manipulate and randomise a variable in a while loop condition?如何在while循环条件下操作和随机化变量?
【发布时间】:2018-06-08 15:09:59
【问题描述】:

我有一个 while 循环,其中包含一个名为 card1Hp 的条件,它是一个新的实例变量,定义在名为 Game 的类的顶部。

    public int card1Hp = 100;
    public int card2Hp = 80;
    public int card3Hp = 90;
    public int card4Hp = 70;

并且类中有一个带有while循环的方法:

 while(card1Hp > 0)

我在类中有一个方法可以为我生成一个指定的随机数,我可以去哪里:

someVar= Game.getRandIntBetween(1,5);

它会生成 randVar = 1 或 2 或 3 或 4 或 5。 有什么办法可以将它放入我的 while 循环条件中。 基本上我希望它是:

while(card1Hp > 0)

换成这样的方式

 while(card(randVar)Hp > 0)

我知道这不是用 java 编写的方法,但这就是我想尝试在我的 cardHp 中生成我想要的随机数的效果。实现这一目标的好方法是什么?我还计划在我的游戏中使用数百个 cardhp 变量来随机化。

【问题讨论】:

  • 您想在每次检查条件时使用一个随机变量,还是只为整个 while 循环的条件随机选择一个变量?
  • 您应该能够将随机代码放入它自己的返回整数的函数中。从那里您可以设置您的 while 循环,返回该函数 > 0。

标签: java random while-loop conditional-statements


【解决方案1】:

我会使用一个数组。像static int[] hpValues = { 100, 80, 90, 70 }; 这样的东西,然后在0(包括)和hpValues.length(不包括)之间获得一个随机数x,你的随机“cardhp”是int randCardHP = hpValues[x]; - 这可能看起来像

int x = Game.getRandIntBetween(1, hpValues.length) - 1;

【讨论】:

    【解决方案2】:

    首先,将您的 hp 值放入一个数组中:

    int[] hps = {card1Hp, card2Hp, card3Hp, card4Hp};
    

    如果您想在每次检查 while 循环条件时使用不同的 hp 值,您可以这样做:

    while (hps[Game.getRandIntBetween(0, hps.length - 1)] > 0)
    

    否则,请执行以下操作:

    int randIndex = Game.getRandIntBetween(0, hps.length - 1);
    while (hps[randIndex] > 0)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-28
      • 2016-01-13
      • 2013-11-15
      • 2011-10-04
      • 2017-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多