import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
/**
* 彩票店销售双色球案例:
系统生成双色球:
6颗红球(33选1) 1颗蓝球(16选1) ,要求6颗红球不重复
客户购买双色球:
要求客户键盘输入,6个红球号码(1-33),1个蓝球号码(1-16)
验证客户购买是否中奖
1) 6个红球和1个篮球全部买中,一等奖,1000万
2) 买中1个蓝球,3-5个红球,二等奖,500万
3) 买中1个篮球,1个红球,三等奖,100万
4) 买中1个篮球,没买中红球,3等奖,50万
5) 剩下情况没中奖
* @author Mango_bin
*
*/
public class DoubleColorBall {
public static void main(String[] args) {
// 1. 获取到系统的一个蓝球 : 1-16中任意出一个
Random ran = new Random();
// xtBlue表示系统的蓝球
int xtBlue = ran.nextInt(16) + 1;// 1-16
System.out.println("系统生成的蓝球为:" + xtBlue);
// 2. 准备1-33的元素内容的数组,用于进行不重复数据的筛选
int[] ready = new int[33];
for (int i = 0; i < ready.length; i++) {
ready[i] = i + 1;
}
// 3. 获取到系统中6个红球,不重复
// xtRed表示系统的红球
int[] xtRed = new int[6];
for (int i = 0; i < xtRed.length; i++) {
// 向数组中添加6个红球
int sj = ran.nextInt(33) + 1;// 1-33 0-32
if (ready[sj - 1] != 0) {// 不重复
// 将不重复的元素赋值给红球
xtRed[i] = sj;
// 将已经筛选过的元素在数组中置为0, 表示下一次不能再进入红球中
ready[sj - 1] = 0;
} else {// 抽到重复的球,循环退一次
i--;
}
}
Arrays.sort(xtRed);
System.out.println("系统生成的红球为:" + Arrays.toString(xtRed));
// 4. 客户买一个蓝球
Scanner sc = new Scanner(System.in);
// khBlue表示客户购买的一个蓝球
int khBlue;
while (true) {
System.out.println("请客户输入1-16的蓝球:");
khBlue = sc.nextInt();
if (khBlue > 0 && khBlue <= 16) {
break;
}
}
System.out.println("客户输入的一个蓝球为:" + khBlue);
// 5. 获取到客户输入的6个红球
int[] khRed = new int[6];
for (int i = 0; i < khRed.length; i++) {
System.out.println("请客户输入1-33的红球:目前输入了第" + (i + 1) + "次");
int kh = sc.nextInt();
if (kh > 0 && kh <= 33) {
khRed[i] = kh;
} else {
i--;
}
}
Arrays.sort(khRed);
System.out.println("客户购买的红球为:" + Arrays.toString(khRed));
// 6. 验证是否中奖
if (xtBlue == khBlue) {// 蓝球买中
// 验证买中了几个红球
// 表示买中的红球的个数
int count = 0;
for (int i = 0; i < xtRed.length; i++) {
for (int j = 0; j < khRed.length; j++) {
System.out.println("i---------" + xtRed[i]);
System.out.println("j---------" + khRed[j]);
if (xtRed[i] == khRed[j]) {
count++;
break;
}
}
}
System.out.println("买中的红球为:" + count);
if (count == 6) {
System.out.println("一等奖,1000万");
} else if (count >= 3 && count <= 5) {
System.out.println("二等奖,500万");
} else if (count == 1) {
System.out.println("三等奖,100万");
} else if (count == 0) {
System.out.println("四等奖,50万");
}
} else {
System.out.println("很遗憾,没有中奖");
}
}
}
Java实现双色球案例
最新推荐文章于 2024-07-09 20:33:22 发布