私は、6面のダイから乱数を返すプログラムを作成しています。また、2番目のダイスの面の量をユーザーに尋ねる文字列を取ります。ユーザが2,4,8,10,12,20,100の数字を入力すると、ダイスはその多くの面で役割を果たす。ユーザーがそれ以外の数字を入力した場合、2番目のダイスよりも6面のダイスが必要です。私たちの問題は、ユーザーが与えられた値以外の数値を入力した場合、0を返します.6面のダイであるため、1から6までの乱数を返す必要があります。私たちのコードを修正する方法に関する提案はありますか?Die Rolling Game
//Blueprint
public class Die{
private int numSides;
private int sideFacingUp;
public int die1;
public int die2;
public int num;
public Die()
{
roll();
}
public Die(int number)
{
num = number;
if(num==2||num==4||num==8|num==10||num==12||num==20||num==100)
{
roll2(num);
}
else
{
roll();
}
}
public void roll()
{
die1= (int)(Math.random()*6)+1;
}
public void roll2(int no)
{
die2 = (int)(Math.random()*no)+1;
}
public int getDie1()
{
//System.out.println("I m here");
return die1;
}
public int getDie2()
{
return die2;
}
}
//actual program
import java.util.Scanner;
public class DieTester{
public static void main(String[] args){
int num;
Die D1 = new Die();
Scanner s1 = new Scanner(System.in);
System.out.println("The Value of the First Die:"+D1.getDie1());
System.out.println("Enter number of Die you want to create");
num = s1.nextInt();
Die D2 = new Die(num);
System.out.println("The Value of the Second Die:"+D2.getDie2());
}
}
ようこそ!デバッガの使い方を学ぶ必要があるようです。 [補完的なデバッグ手法](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)にご協力ください。その後も問題が残っている場合は、もう少し詳しくお聞かせください。 –
最初のステップ:ダイのクラスでdie1とdie2を取り除き、dieFaceを作成します。あなたはこの間違ったことを考えています。あなたが戻したい唯一の価値は、2つの異なるダイスではなく、ダイスのトップです。またroll2を取り除く。あなたはそれを必要としません。 die1とdie2はdieFaceになり、dieFaceだけを返します。 – Sedrick
あなたのメインでは、「作成したいダイの番号を入力してください」という質問はここでうまく聞こえません。質問は、 "あなたは2番目のダイにどのくらい多くの面や顔を持たせたいのですか?" – Sedrick