私は roshambo (またはじゃんけん) を実行しようとしており、0 から 2 までのランダムな値の代わりにコンピューターにじゃんけんを出力させようとしています。ただし、ランダムな値が得られません。プログラムが実行されると while ループが実行され、ループを実行するたびに値は変わりません。ただし、アプリケーションを停止してから再実行すると、値が変更され、ループ中は同じ値のままになります。このメソッドを正しくコーディングしていますか?
public class Player2 extends Player{
private Random rand;
public Player2(){
rand = new Random();
}
public Roshambo generateRoshambo() {
int min = 0;
int max = 2;
int randomNum = rand.nextInt(max - min + 1) + min;
if(randomNum == 0){
return Roshambo.ROCK;
} else if (randomNum == 1) {
return Roshambo.PAPER;
} else {
return Roshambo.SCISSORS;
}
}
}
ループは次のとおりです。
Roshambo value = p2.generateRoshambo();
String cont = "Yes";
do{
System.out.print("\nRock, Paper, or Scissors: ");
String choice = sc.nextLine();
System.out.println("\n" + name + ": " + choice);
System.out.println("Computer: " + value);
if (value == ...)
{
System.out.println("\n" + name + " Wins!\n");
}
else if (value == ...)
{
System.out.println("\nYou Tied!\n");
}
else
{
System.out.println("\nThe Computer Wins!\n");
}
System.out.print("Play again? (Yes/No): ");
cont = sc.nextLine();
} while (cont.equalsIgnoreCase("Yes"));