我想用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的初学者,我正在努力学习这种语言。 任何人都可以给我一些有关如何进行的想法吗?多谢,谢谢
答案 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);
}
}