Java小案例:模拟双色球

1.用户选择六个红色号码,一个蓝色号码。

2.系统随机生成六个红色号码一个蓝色号码。

3.最后判断中奖情况。

package com.itheima;

import java.util.Random;
import java.util.Scanner;

public class Test8 {
    public static void main(String[] args) {
        int[] numbers=userNumber();    //用户选择6个红色号码,一个蓝色号码
        for (int i = 0; i < numbers.length; i++) {
            System.out.println(numbers[i]);
        }

        int[] numbers2=rightNumber();    //系统随机生成6个红色号码,1和蓝色号码
        for (int i = 0; i < numbers2.length; i++) {
            System.out.println(numbers2[i]);
        }
        check(numbers,numbers2);       //判断中奖情况
    }
    public static int[] userNumber(){
        int[] numbers=new int[7];
        Scanner sc=new Scanner(System.in);
        for (int i = 0; i < numbers.length-1; i++) {
            while (true) {
                System.out.println("请输入第"+(i+1)+"个红球号码(1~33)之间,不能重复:");
                int number=sc.nextInt();
                if(number<1 ||number>33){
                    System.out.println("范围不对");

                } else if (exist(numbers,number)) {
                    System.out.println("数据重复");

                }else{
                    numbers[i]=number;
                    break;
                }
            }
        }
        while (true) {
            System.out.println("请输入1个蓝球号码(1~16之间)");
            int a=sc.nextInt();
            if(a<1 || a>16){
                System.out.println("范围不对");
            }else{
                numbers[6]=a;
                break;
            }
        }
        return numbers;
    }
    public static boolean exist(int[] numbers,int number){
        for (int i = 0; i < numbers.length-1; i++) {    //检验用户输入的数字是否重复,重复返回true
            if(numbers[i]==number){
                return true;
            }
        }
        return false;
    }
    public static int[] rightNumber(){
        Random r=new Random();
        int[] numbers=new int[7];
        for (int i = 0; i < numbers.length-1; i++) {   //随机生成红色号码
            while(true){
                int number=r.nextInt(33)+1;
                if(!exist(numbers,number)){    //如果不存在就添加,存在就再次循环
                    numbers[i]=number;
                    break;
                }
            }
        }
        int number = r.nextInt(16)+1;    //随机生成蓝色号码
        numbers[6]=number;
        return numbers;
    }
    public static void check(int[] numbers,int[] numbers2){
        int red=0;
        int blue=0;
        for (int i = 0; i < numbers.length-1; i++) {     //得出中红色号码的数量
            for (int j = 0; j < numbers2.length-1; j++) {
                if(numbers2[j]==numbers[i]){
                    red++;
                    break;
                }
            }
            }
        if(numbers[6]==numbers2[6]){    //得出中蓝色号码的数量
            blue++;
        }
        System.out.println("命中的红球数量:"+red);
        System.out.println("命中的蓝球数量:"+blue);
    }

}

最后得奖情况我就不写了,只写了用户中了多少红色球和蓝色球。

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值