2017-12-28 47 views
1

私はcard1Hpと呼ばれる条件を持つwhileループを持っています。これはGameというクラスの最上部で定義された新しいインスタンス変数です。whileループ条件で変数を操作しランダム化する方法は?

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(card(randVar)Hp > 0) 

のような方法のいくつかの種類に置き換え

while(card1Hp > 0) 

私はJavaでそれを書くための方法ではありません知っているが、それは私がしたいエフェクトです私のcardHpに必要な乱数を生成してみてください。これを達成するための良い方法は何ですか?自分のゲームで何百ものカード変数を計画してランダム化する予定です。

+0

あなたはランダムな変数に条件を確認、または全体のために一つだけランダムに選択された可変ループの状態しばらくするたびに使用しますか? – Sweeper

+1

ランダムなコードを、整数を返す独自の関数に入れることができるはずです。そこから、その関数> 0の戻り値でwhileループを設定することができます。 – arkdevelopment

答えて

0

まず、置くあなたのHP値のように見えるかもしれません:あなたは別のHP値whileループ条件がチェックされるたびに使用したい場合は

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

は、あなたがこれを行うことができます。

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

そうでない場合は、次の操作を行います。

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

私は配列を使用します。 static int[] hpValues = { 100, 80, 90, 70 };ような何かが、その後、乱数を取得x0間(包括的)とhpValues.length(排他)とあなたのランダム「cardhpは」int randCardHP = hpValues[x];ある - そしてそれは配列に

int x = Game.getRandIntBetween(1, hpValues.length) - 1; 
関連する問題