双色球规则:双色球每注投注号码由6个红色球号码和1个蓝色球号码组成。
红色球从1—33中随机生成6个不重复的号码;蓝色球号码从1—16中随机生成1个;
客户通过键盘录入购买的红色球6个(不重复)和蓝色球1个, 判断客户的中奖状况:
1) 买中蓝色球, 红色球全部买中, 1等奖 100万
2) 买中蓝色球,红色球买中3-5个, 2等奖50万
3) 买中蓝色球, 红色球买中1个, 3等奖20万
4) 其余情况全部算作没有中奖
import java.util.LinkedHashSet;
import java.util.Random;
import java.util.Scanner;
public class Lottery {
public static void main(String[] args) {
Random ran = new Random();
//1.随机生成一个蓝色球号码
int xtBlue = ran.nextInt(16)+1;
//System.out.println(xtBlue);
LinkedHashSet<Integer> xtRed = new LinkedHashSet<>();
//2.随机生成6个红色球号码并加入集合中
while (xtRed.size() < 6){
int red = ran.nextInt(33)+1;
xtRed.add(red);
}
//System.out.println(xtRed);
// 3. 客户通过键盘录入一个1-16之间的蓝色球
Scanner sc = new Scanner(System.in);
System.out.println("请购买1-16之间的蓝色球,才有机会中奖");
int khBlue = sc.nextInt();
// 4. 客户通过键盘录入6个不重复红色球
LinkedHashSet<Integer> kuRed = new LinkedHashSet<>();
while(kuRed.size() < 6){
System.out.println("请购买1-33之间的红色球,目前购买到第" + (kuRed.size() + 1) + "个");
int number = sc.nextInt();
kuRed.add(number);
}
System.out.println(kuRed);
// 5. 验证客户是否中奖
if(khBlue == xtBlue){// 买中蓝色球
// 6. 继续比较出红色球买中数量
// 遍历系统红色球集合
// count表示买中的红色球的数量
int count = 0;
// 7. 为了验证LinkedHashSet对应位置球买中方式
// 需要将set集合有索引. 集合转数组
Object[] xtRedArr = xtRed.toArray();
Object[] khRedArr = kuRed.toArray();
for(int index = 0; index < xtRedArr.length; index++){
Integer i1 = (Integer)xtRedArr[index];
Integer i2 = (Integer)khRedArr[index];
if(i1 == i2){
count++;
}else{
break;
}
}
/*for(Integer i : xtRed){
// 验证系统红色球中球号在客户购买红色球号中是否存在
if(kuRed.contains(i)){
count++;
}
}*/
// 7. 根据买中的红球数量匹配中奖情况
switch(count){
case 6:
System.out.println("一等奖,100万");
break;
case 5:
case 4:
case 3:
System.out.println("二等奖,50万");
break;
case 1:
System.out.println("三等奖,10万");
break;
default:
System.out.println("没有中奖");
}
}else{
System.out.println("没有中奖");
}
}
}