2016-12-12 4 views
1

こんにちは、私はJavaを初めて使っています。これは私がしなければならないことです: 私はポイントゲームを作って、それは無関係なものとして投稿しません。 6つの側面と9つの側面を持つ2つのディーゼルがあります。 (間のサイコロ回の乱数を巻いている条件付きでの挑戦

  • :あなたは1ラウンドでダブル6の少なくとも5倍をロールした場合

    は、次のことが発生します。これは私が持つ問題点を持っているものです10および30倍)

  • 私は本当にここに、私の文言を理解していない

ロールは銀行に追加されたすべてのそれらのサイコロの累積積この部分を除いて全プログラムを完了しました。これは私がやっていることです:

if (ninedice == 6 && sixdice == 6 >= 5){ 
    ninedice = (int) Math.ceil(Math.random() * (30-10)+ 10); 
    sixdice = (int) Math.ceil(Math.random() * (30-10)+10); 
    accountpoints = ninedice+sixdice; 
} 

これは明らかに正しくないと、それはちょうど倍の乱数をダイスず、いずれかのアカウントにポイントを追加しないと、私は望ましい結果を得ていないのです。どのようなヘルプも大いに承認されており、事前に感謝しています!

+0

あなたがについて学びましたまだループ? –

+0

ちょっとしたことだけど先進的なループではない –

+0

そして、すべてのロールの製品を尋ねると、それにはダブル6が含まれていますか? –

答えて

1

あなたは正しい軌道に乗っていますが、それほどまだありません。 ifステートメント条件はちょうどif (ninedice == 6 && sixdice == 6)でなければなりません。 >= 5の部分は必要ありません。このif文は、各ダイの最初のロールが6で再浮動するかどうかを示します。ただし、if文の本体にはいくつかの論理的な問題があります。 コードのこの体、

ninedice = (int) Math.ceil(Math.random() * (30-10)+ 10); 
sixdice = (int) Math.ceil(Math.random() * (30-10)+10); 

は、二つのダイが再びロールしようとしている回数を生成します。ただし、ninedicesixdiceは最初のロールを表しているため、上書きしないでください。

int ninedicerolls = (int) Math.ceil(Math.random() * (30-10)+ 10); 
int sixdicerolls = (int) Math.ceil(Math.random() * (30-10)+10); 

今一緒に製品を掛け、その後

int ninediceproduct = ninedice; 
int sixdiceproduct = sixdice; 
while(ninediceproduct > 0){ 
    ninediceproduct *= (int) Math.ceil(Math.random() * (9-1)+ 1); 
    ninediceproduct--; 
} 
while(sixdiceproduct > 0){ 
    sixdiceproduct *= (int) Math.ceil(Math.random() * (6-1)+ 1); 
    sixdiceproduct--; 
} 

、各ダイのために各ロールを追跡するために、製品の変数を保持し、それを元に戻して、

int cumulative = sixdiceproduct * ninediceproduct; 
1

あなたはより多くのこのような何かをしたい:

rollDice(); 

if (nineDice == 6 && sixDice == 6) 
{ 
    myDiceCondition++; 
} 

if (myDiceCondition >= 5) 
{ 
    // get random number between 10 and 30 
    // loop for that amount 
    // roll both dice 
    // add to account balance? 
} 
+0

問題ありません。ハッピーコーディング! – Eric

1

あなたの文はと評価されている場合:(> = 5 /偽& &真真/偽)。 5をintと比較する必要があります。あなたは、ダブル6の回数を記録していますか?このようなものはうまくいくはずです:

public static void diceExample(){ 

    int ninedice, sixdice, accountpoints, rolledDoubleSix; 

    if (ninedice == 6 && sixdice == 6) { 
     rolledDoubleSix++; 
    } 

    if (rolledDoubleSix == 5){ 
     ninedice=(int)Math.ceil(Math.random() * (30-10)+ 10); 
     sixdice=(int)Math.ceil(Math.random() * (30-10)+10); 
     accountpoints = ninedice+sixdice; 

    } 
}