所以在我的第一堂课中我有
final int[] europeanroulettegame = {0,32,15,19,4,21,2,25,17,34,6,27,13,36,11,30,8,23,10,5,24,16,33,1,20,14,31,9,22,18,29,7,28,12,35,3,26};
// random number generated from the roulette
public static int getRandom(int[] europeanroulette){
int winningnumber = new Random().nextInt(europeanroulette.length);
return winningnumber;
}
在另一堂课中我有
public boolean equals(){
for (int i = 0; i < anyplayer.length; i++) {
if (winningnumber != anyplayer[i]) {
return false;
}
else {
return true;
}
}
我想知道为什么这似乎不起作用?我正在尝试使用头等舱中的获胜号码,但它似乎不起作用。
我还想在我的驱动程序中添加它,我有这个
// Dealer announces the winning number (randomly generated)
int winningnumber = europeanroulette.getRandom(europeanroulettegame); // the name of the first class is europeanroulette
我想知道为我的驱动程序生成的获胜数是否与equals方法相同?
如果没有,我如何确保两个类使用相同的获胜号码,而不是两次产生一个(使它们不同)?
答案 0 :(得分:1)
您的getRandom方法不会从列表中返回随机数。它返回一个介于0和列表长度之间的数字。如果您想要列表中的随机数,请执行以下操作:
return europeanroulette[(int)(Math.random() * europeanroulette.length)];
如果您希望从头等舱获得第二名的中奖号码。你需要调用方法:
int winningnumber = europeanroulette.getRandom(europeanroulette.europeanroulettegame);
您需要执行europeanroulette.europeanroulettegame
而不是europeanroulettegame
的原因是您在另一个类中引用变量。
如果您想在多个地方获得相同的中奖号码,那么您应该将从getRandom()
获得的第一个中奖号码保存为全局变量。
或者只使用这个类:
class EuropeanRouletteGame{
static int number;
static final int range = 37;
static void newNumber(){
number = (int)(Math.random() * ranage);
}
static int getNumber(){
return number;
}
}
如果希望生成介于0和范围之间的新随机数,请使用newNumber方法。当您拨打getNumber时,您将始终获得当前号码。 你应该在第一次调用getNUmber之前运行newNumber,因为这个数字最初为零。
班级名称应以大写字母开头。
答案 1 :(得分:0)
您不需要在开头初始化数组。你实际上是在创建一个包含37个元素(0-36)的数组,并随机返回一个数字。如果需要[0-36]范围内的数字,可以使用
在运行时进行(int)(new Random().nextInt(37))
Random.nextInt(N)
生成0(包括)和N(不包括)之间的分数。因此,将返回值转换为整数将为您提供[0-(N-1)]的范围,N为整数。
答案 2 :(得分:0)
可能你应该在这里专门使用静态
import java.util.Random;
public class random {
static final int[] europeanroulettegame = {0,32,15,19,4,21,2,25,17,34,6,27,13,36,11,30,8,23,10,5,24,16,33,1,20,14,31,9,22,18,29,7,28,12,35,3,26};
// random number generated from the roulette
public static int getRandom(int[] europeanroulette){
int winningnumber = new Random().nextInt(europeanroulette.length);
return winningnumber;
}
}
public class randomuse {
public static boolean eql(int[] anyplayer){
boolean present = false;
for (int i = 0; i < anyplayer.length; i++) {
if (new random().getRandom(anyplayer) != anyplayer[i]) {
present=false; }
else { present= true; }
}
return present;
}
public static void main(String[] args) {
System.out.println(eql(random.europeanroulettegame));
}
}