Java彩票游戏中的计算收益

时间:2018-10-23 17:47:00

标签: java oop

我想用Java实现彩票游戏,其概念如下:首先,玩家从1到20之间选择4个数字,然后选择要下注的金额,然后进行平局并计算收益。其次,如果玩家在他选择的4个数字中找到3个好数字,那么他得到的下注金额是其下注金额的10倍;如果玩家在他选择的4个数字中发现4个好数字,那么他得到的金额是其下注金额的100倍赌。

在Bet课程中,我做到了

public class Bet {

//Method to compute Gain
public int computeGain(Lottery lottery) {
    ArrayList<Integer> drawnNumbers = lottery.getDrawnNumbers();
    ArrayList<Integer> goodNumbers = lottery.getGoodNumbers();

    for (Integer gn : goodNumbers) {

        ArrayList<Integer> winningNumber = lottery.getGoodNumbers();

    }

    if (winningNumber.size() = 3) {
        payout = 10 * betMoney;
        return payout;
    } 
    else if (winningNumber.size() = 4) {
        payout = 100 * betmoney;
        return payout;
    } 
    else {
        return betMoney;
    }

}

}

我的函数computeGain存在问题,目前我有点卡住了。也许是我做错了方法。我是Java的初学者,我正在努力学习这种语言。 任何人都可以给我一些有关如何进行的想法吗?多谢,谢谢

1 个答案:

答案 0 :(得分:1)

在您的computeGain方法中,只需执行以下操作:

ArrayList<Integer> winningNumber = new ArrayList<Integer>(drawnNumbers); //copy drawnNumbers list

winningNumber.retainAll(goodNumbers); //do an intersection between the lists

代替

for (Integer gn : goodNumbers) {

    ArrayList<Integer> winningNumber = lottery.getGoodNumbers();

}

如果要使用for-each循环,请按以下步骤操作:

ArrayList<Integer> winningNumber = new ArrayList<Integer>(); //initialize outside for-each loop
for (Integer gn : goodNumbers) {

    if(drawnNumbers.contains(gn)){
          winningNumber.add(gn);
    }

}