我正在编写一个老虎机类,它生成3个3个随机数的数组,并检查所有数字是否匹配,如果是这样,它们被宣布为胜利者。我已经编写了另一个程序来运行1000台老虎机并计算获胜者。我面临的问题是它总是给我0个赢家。有帮助吗?以下是每个代码:
SlotMachine类
import java.util.*;
public class SlotMachine{
private int[] row1 = new int[3];
private int[] row2 = new int[3];
private int[] row3 = new int[3];
public SlotMachine() {
playMachine();
}
public void playMachine() {
Random rand = new Random();
for (int counter = 0; counter < 3; counter++) {
row1[counter] = rand.nextInt(10);
}
for (int counter = 0; counter < 3; counter++) {
row2[counter] = rand.nextInt(10);
}
for (int counter = 0; counter < 3; counter++) {
row3[counter] = rand.nextInt(10);
}
}
public boolean isWinner() {
if (row1[0] == row1[1]) {
if (row1[0] == row1[2]) {
return true;
}
}
if (row2[0] == row2[1]) {
if (row2[0] == row2[2]) {
return true;
}
}
if (row3[0] == row3[1]) {
if (row3[0] == row3[2]) {
return true;
}
}
return false;
}
}
胜利计数器:
import java.util.*;
public class Play1000SlotMachines {
public static void main(String[] args) {
SlotMachine slotMachine = new SlotMachine();
int count = 0;
for (int i = 0; i < 1000; i++) {
if (slotMachine.isWinner() == true) {
count = count + 1;
}
}
System.out.println("From 1000 slot machines, " + count + " were winners.");
}
}
答案 0 :(得分:1)
您永远不会重新推出老虎机。我还更改了方法的名称,以反映此实现。如果您想要播放1000个不同的老虎机,请将新老虎机的声明移动到for循环中。这将创建1000个不同的老虎机类实例,而不是下面的实现,其中创建一个老虎机的实例然后播放1000次。一个重要的区别。
public class PlaySlotMachine1000Times {
public static void main(String[] args) {
SlotMachine slotMachine = new SlotMachine();
int count = 0;
for (int i = 0; i < 1000; i++) {
slotMachine.playMachine();
if (slotMachine.isWinner())
count++;
}
System.out.println("From 1000 slot machines, " + count + " were winners.");
}
}