创建一个模拟双色球的系统。
第一步-->先创建中奖的号码
//创建中奖的数字,红球1--33,蓝球1--16
public static int[] createLuckNumber() {
int[] luckNumbers = new int[7];
Random random = new Random();
for (int i = 0; i < luckNumbers.length-1; i++) {
int num = random.nextInt(33)+1;
// 如果不定义flag就是会,虽然不会进下面的循环但是出了循环,后还是会赋值给数组,达不到去重的效果
boolean flag = true;
for (int j = 0; j < i; j++) {
if(num == luckNumbers[j]){
flag = false;
i--;
break;
}
}
if(flag){
luckNumbers[i] = num;
}
}
luckNumbers[luckNumbers.length - 1] = random.nextInt(16) + 1;
// System.out.println(Arrays.toString(luckNumbers));
return luckNumbers;
}
这一步创建好了双色的获奖号码
第二步-->模拟买家买号码:
//创建用户要买的号码,红球1--33,蓝球1--16
public static int[] userInputNumbers() {
int[] userNumbers =new int[7];
Scanner sc = new Scanner(System.in);
//判断输入的号码是否买过,不能重复购买同一个号
for (int i = 0; i < userNumbers.length - 1; i++) {
System.out.println("你要买的第"+(i + 1)+ " 红球号是:");
int num = sc.nextInt();
if(num >= 1 && num <= 33){
boolean flag = true;
for (int j = 0; j < i; j++) {
if(num == userNumbers[j]){
flag = false;
System.out.println("号码已经买过了,请选择不同的号码:");
i--;
break;
}
}
if(flag){
userNumbers[i] = num;
}
}else{
System.out.println("你买的号码不存在,请买1--33的号码:");
i--;
continue;
}
}
System.out.println("你要买的蓝球号:");
int bluenum = sc.nextInt();
while(bluenum<1 || bluenum > 16){
System.out.println("你买的号不存在,请买1--16的号码:");
bluenum = sc.nextInt();
}
userNumbers[userNumbers.length-1] =bluenum;
return userNumbers;
}
这一步就可以模拟买家已经买好了自己的双色球号了
第三步-->根据用户买的号判断中了什么奖,获奖的规则是;
//判断用户的中奖
public static void judge(int[] luckNumbers, int[] userNumbers) {
int redNumber = 0;
int blueNumber = 0;
//判断红球中了多少个
for (int i = 0; i < luckNumbers.length - 1; i++) {
for (int j = 0; j < userNumbers.length - 1; j++) {
if(luckNumbers[i] == userNumbers[j]){
redNumber++;
break;
}
}
}
//判断蓝球是否中了
if(luckNumbers[luckNumbers.length - 1] == userNumbers[userNumbers.length - 1]){
blueNumber++;
}
if((blueNumber==1 && redNumber ==0)|| (redNumber<=2 && blueNumber ==1)) {
System.out.println("恭喜你中了5元");
}else if((redNumber == 4 && blueNumber == 0)|| (redNumber ==3 && blueNumber == 1)){
System.out.println("恭喜你中了10元");
}else if((redNumber == 4 && blueNumber == 1) || (redNumber == 5 && blueNumber == 0)){
System.out.println("恭喜你中200元");
}else if(redNumber == 5 && blueNumber == 1){
System.out.println("恭喜你中3000元");
}else if(redNumber == 6 && blueNumber == 0){
System.out.println("恭喜你中500万元");
}else if(redNumber == 6 && blueNumber == 1){
System.out.println("恭喜你中1000万元");
}else{
System.out.println("谢谢参与");
}
}
这下就全部好了:
测试一波:
public static void main(String[] args) {
int[] luckNumbers = createLuckNumber();
System.out.println(Arrays.toString(luckNumbers));
int[] userNumbers = userInputNumbers();
// System.out.println(Arrays.toString(userNumbers));
judge(luckNumbers,userNumbers);
}
结果
[30, 28, 14, 8, 3, 7, 15]
你要买的第1 红球号是:
30
你要买的第2 红球号是:
28
你要买的第3 红球号是:
14
你要买的第4 红球号是:
8
你要买的第5 红球号是:
3
你要买的第6 红球号是:
7
你要买的蓝球号:
15
恭喜你中1000万元
欧耶中大奖了;到这里就完了!!!