私はJavaクラスへのイントロの課題に取り組んできました。私がやるべき2つのことを達成する方法を理解することはできません。Javaのyahtzeeプログラムでリロールするにはどうすればよいですか?
今私が持っているもの:5つのダイスをロールして結果を表示する配列を作成しました。次のように私が持っているコードは、私が成功した私に金型ロールの結果を与え、...今
package operation.pkg7;
import java.util.Random;
import java.util.Scanner;
public class Operation7 {
public static void main(String[] args)
{
int[] dice = new int[5];
Random r = new Random();
//This makes the dice
for (int i = 0; i < 5; i++) {
dice[i] = r.nextInt(6) + 1;
}
//This displays the dice rolls
for (int i = 0; i < 5; i++) {
System.out.print("Roll " + (i+1) + ":");
System.out.print(" " + dice[i] + " ");
}
System.out.println();
//..........................................
int[] counts = new int[6];
for (int i = 0; i < 6; i++){
counts[i] = 0;
}
//count up the values
for (int i = 0; i < 5; i++) {
int diceIndex = dice[i] - 1;
counts[diceIndex]++;
}
System.out.println();
for (int i = 0; i < 6; i++){
System.out.println("The number of " + (i+1) + "s is : " +
counts[i]);
}
}
}
ですが、私は再ロールを行う方法を考え出すの問題を抱えています。これは、最初のダイスロールを表示した後にプログラムが求めているものの例です...
Roll 1: 2 Roll 2: 6 Roll 3: 1 Roll 4: 4 Roll 5: 2
Would you like to re-roll any dice? y/n
y
Which dice would you like to re-roll? 1-5
2, 3, 4
Roll 1: 2 Roll 2: 3 Roll 3: 2 Roll 4: 3 Roll 5: 2
Would you like to re-roll any dice? y/n
n
Roll 1: 2 Roll 2: 3 Roll 3: 2 Roll 4: 3 Roll 5: 2
これは目標です。私がそれをしたら、私はプログラムが最高のスコアを表示するようにする必要があります...例えば、2つの3つと3つの2つがある場合、それはフルハウスであると言う必要があります。番号など
誰でもアドバイスをお持ちですか?
別の配列を作成し、最初の配列を新しい配列にコピーします。今度はサイコロをもう一度転がしてください.2,3,4のインデックスだけに値を置いてください。forループの下でif stmtを比較することでそれを行うことができます。ユーザーからの入力を受け入れる方法も知っていますか? –
私はint型入力を使って、配列内の位置を指定して再ランダム化するつもりでした。私は入力をいくつかのものに使う方法を知っていますが、配列と入力をどのように扱うかはわかりません。 – B1azingPh03nix
あなたは入力値を別の配列に格納してからそれと比較を開始する必要があります... –