作者 | 顾北
对这个世界充满向往的理想主义者
基于JAVA语言编写,模拟实现双色球摇奖器摇奖过程,产生的有效号码与用户输入的有效号码对比,输出用户的中奖情况。
用户首先输入自己购买的双色球号码(其中6个红色球号码,1个蓝色球号码。红色球号码范围在1-33,蓝色球号码1-16)。
接下来程序模拟双色球摇奖器,随机产生一组有效号码,逐个打印出来。
摇奖器产生的号码与用户购买的号码进行对比,判断用户中奖情况。
- 一等奖:7个号码相符(6个红色球号码和1个蓝色球号码)(红色球号码顺序不限,下同)
- 二等奖:6个红色球号码相符;
- 三等奖:5个红色球号码和1个蓝色球号码相符;
- 四等奖:5个红色球号码,或4个红色球号码和1个蓝色球号码相符;
- 五等奖:4个红色球号码,或3个红色球号码和1个蓝色球号码相符;
- 六等奖:1个蓝色球号码相符(有无红色球号码相符均可)。
public class DoubleChromosphere {
//定义红色球的集合
static ArrayList<Integer> redbox = new ArrayList<Integer>();
//定义蓝色球
static int bluebox;
//定义箱子
static ArrayList<Integer> box = new ArrayList<Integer>();
//把红球都放到箱子里
static ArrayList<Integer> useredbox = new ArrayList<Integer>();
static int usebluebox;
//定义 红球匹配的个数
static int reddui = 0;
static int bluedui = 0;
public static void kai() {
System.out.println("开奖了");
for (int i = 1; i <= 33; i++) {
box.add(i);
}
Random r = new Random();
//红球
System.out.print("红球");
for (int i = 1; i <= 6; i++) {
//根据索引找到球
int x = r.nextInt(box.size());
int redbox1 = box.get(x);
//删除已经拿出来的球
box.remove(x);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.print(redbox1 + " ");
redbox.add(redbox1);
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.print("蓝球");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
bluebox = r.nextInt(16) + 1;
System.out.println(bluebox);
}
public static void main(String[] args) {
System.out.println("欢迎来来到中国福利彩票双色球,请量力而行,理性购彩");
Scanner sc = new Scanner(System.in);
List<Integer> list = new ArrayList<>();
for (int i = 1; i <= 6; i++) {
System.out.println("请输入您要购买第" + i + "红色球的号码,范围是1到33,且不可重复购买一个号码");
int useredbox1 = sc.nextInt();
if (useredbox1 < 1 || useredbox1 > 33) {
System.out.println("您输入的数字有误,请重新输入");
i=0;
} else {
boolean result = list.contains(useredbox1);
useredbox.add(useredbox1);
if(result){
System.out.println("您输入有误,请重新输入.请别输入重复的数字.");
i -- ;
}else{
list.add(useredbox1);
}
}
}
System.out.println("请输入您要购买的蓝球的号码,范围在1到16");
usebluebox = sc.nextInt();
//判断是否有相同元素
System.out.println("您现在选好的红球是" + useredbox + "蓝球是" + usebluebox);
System.out.println("请耐心等待10秒,十秒之后将揭晓结果");
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
kai();
//遍历用户 红色相同的个数 调用retainAll方法
useredbox.retainAll(redbox);
reddui = useredbox.size();
if (usebluebox == bluebox) {
bluedui++;
}
if (reddui == 6 && bluedui == 1) {
System.out.println("恭喜你获得一等奖,奖金1000万元");
} else if (reddui == 6 && bluedui == 0) {
System.out.println("恭喜你获得二等奖,奖金500万元");
} else if (reddui == 5 && bluedui == 1) {
System.out.println("恭喜你获得三等奖,奖金1万元");
} else if (reddui == 5 && bluedui == 0 || reddui == 4 && bluedui == 1) {
System.out.println("恭喜你获得四等奖,奖金3000元");
} else if (reddui == 4 && bluedui == 0 || reddui == 3 && bluedui == 1) {
System.out.println("恭喜你获得五等奖,奖金100元");
} else if (reddui == 2 && bluedui == 1 || reddui == 1 && bluedui == 1 || reddui == 0 && bluedui == 1) {
System.out.println("恭喜你获得六等奖,奖金5元");
} else {
System.out.println("希望您下次中奖,欢迎下次购买");
}
}
}