基础知识:1.数组 2.循环逻辑
- 实现随机生成双色球号码: [ 04 12 30 08 15 26 ] [ 11 ]
思路:
蓝球池 { “01”,“02”,“03”,“04”, … “16” } 16取1
红球池 { “01”,“02”,“03”,“04”, … “33” } 33取6
下注,开奖 都是红球六个 蓝球一个
1.先定义后台随机生成的本期双色球中奖号码
- 注意随机生成 不可生成重复号码
//红球、蓝球的中奖号码个数
int[] red = new int[6];
int[] blue = new int[1];
Random rd =new Random();
//产生蓝色中奖号码
blue[0] = rd.nextInt(16)+1;
//产生红色中奖号码
for (int i = 0; i < red.length; i++) {
red[i] = rd.nextInt(33)+1;
//去重处理,避免重复号码
for (int j = 0; j <= i-1; j++) {
if (red[i]==red[j]) {
i--;
continue;
}
}
}
2.定义顾客下注的号码数组
- 注意红球号码范围1-33号,蓝球1-16号,不可超出
- 一注中不可下注重复号码
//定义下注的号码数组
int[] redbox = new int[6];
int[] bluebox = new int[1];
Scanner sc = new Scanner(System.in);
System.out.println("=====欢迎来到福利彩票中心双色球彩注=====");
System.out.println("红球号码1-33,蓝球号码1-16,请勿重复号码下注......");
A:for (int i = 1; i <= 7; i++) {
//1-6位号码输入红球
if (i<7) {
System.out.println("请输入你要买的第"+i+"个红球号码");
int x = sc.nextInt();
//红球号码范围1-33,超出重新输入
if (x > 33 || x < 1) {
System.out.println("注意范围,红球1-33!请重新输入!");
i--;
continue;
}
redbox[i-1] = x;
//去重
for (int j = 0; j < i-1; j++) {
if (x==redbox[j]) {
i--;
System.out.println("头给你捶歪了!号码重复了!重新输!");
continue A;
}
}
}else {
System.out.println("请输入你要买的蓝球号码");
int x = sc.nextInt();
//1-16为蓝球号码
if (x < 1 || x>16) {
System.out.println("头给你捶歪了!蓝球1-16,注意范围!重新输!");
i--;
continue;
}
bluebox[0] = x;
}
}
System.out.println("你买的号码为:"+Arrays.toString(redbox)+Arrays.toString(bluebox));
System.out.println("本期双色球中奖号码为:"+Arrays.toString(red)+Arrays.toString(blue));
3.下注双色球号码与后台产生号码对比
//中奖号码个数
int n=0;
//定义对笔过后红球下注的展示数组
int[] redshow = new int[6];
//展示数组元素先全部替换为0
Arrays.fill(redshow, 0);
int[] blueshow = {0};
//下注号码和产生的中奖号码对比
for (int i = 0; i < redbox.length; i++) {
for (int j = 0; j < redbox.length; j++) {
//每个元素遍历对比一遍,true则中奖号码个数加1,把中奖号码赋值给展示数组
if (red[i]==redbox[j]) {
n++;
redshow[j]=redbox[j];
}
}
}
//蓝球数组一个元素,直接对比
if (blue[0]==bluebox[0]) {
n++;
blueshow[0]=bluebox[0];
}
System.out.println("\n中奖号码个数:"+n+",买中的号码为:"+Arrays.toString(redshow)+Arrays.toString(blueshow));
}