双色球模拟摇奖器
作者 | 顾北
对这个世界充满向往的理想主义者
用户首先输入自己购买的双色球号码(其中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("希望您下次中奖,欢迎下次购买");
}
}
}
相关阅读
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>导航栏</title> <link rel="stylesheet" href="tes
使用百度地图api模拟实时定位页面 完整示例 效果:使用百度地图api在页面上显示车辆的实时位置,并有自动刷新和手动刷新两种方
本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复 「1024」 即可领取,欢迎大
约瑟夫问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题。在计算机编程的算法中,类似问题又称为约瑟夫环。又称“
模拟退火(Simulated Annealing, SA)算法简介与MATLAB
目录 模拟退火算法概述 算法步骤 算法特点 模拟退火算法MATLAB实现 【例1】一元/多元函数优化 【例2】TSP问题 模拟退火算法概述