Java案例:双色球


案例:双色球

需求:投注号码由6个红色号码和1个蓝色号码组成,红色球号码从1-36中选择,蓝球号码从1-16中选择

1.用户输入红球和蓝球号码

    //用户输入红球和蓝球号
    public static int[] selectNumbers(){
        //存储号码,六个红球号,一个蓝球号
        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) + "个红球号码");
                //
                int number = sc.nextInt();
                if (number < 1 || number > 36) {
                    System.out.println("号码不在范围内,请输入1-36之间的号码");
                } else {
                    if (exist(numbers, number)) {
                        System.out.println("号码有重复,请重新输入");
                    } else {
                        //号码符合,存入数组中
                        numbers[i] = number;
                        //结束
                        break;
                    }
                }
            }

        }

        //挑选蓝球
        while(true) {
            System.out.println("请您输入第7个蓝球号码");
            //
            int number = sc.nextInt();

            if (number < 1 || number > 16) {
                System.out.println("号码不在范围内,请输入1-16之间的号码");
            }else{
                numbers[6] = number;
                //跳出循环
                break;
            }
        }

        return numbers;
    }

2.判断红球号码是否重复

    //判断红球号码是否重复
    public static boolean exist(int[] numbers , int number){
        //遍历
        for(int i = 0 ; i < numbers.length ; i++){
            //如果号码为0跳出循环
            if(numbers[i] == 0){
                break;
            }
            //输入号码和数组中的数据重复
            if(numbers[i] == number){
                return true;
            }
        }
        return false;
    }

3.系统随机号码

    //系统随机号码
    public static int[] RandomNumbers(){

        int[] numbers = new int[7];
        Scanner sc = new Scanner(System.in);
        Random random = new Random();

        //随机红球号码,1-36  0-35
        for(int i = 0 ; i < numbers.length - 1 ; i++){

            //循环随机号码
            while(true) {
                int number = random.nextInt(36) + 1;
                if (exist(numbers,number)) {

                } else {
                    numbers[i] = number;
                    break;
                }
            }
        }

        //随机蓝色号码
        int number = random.nextInt(16) + 1;
        numbers[6] = number;

//        for(int i = 0 ; i < numbers.length ; i++){
//            System.out.print(numbers[i] + " ");
//        }

        return numbers;
    }

4.判断用户是否中奖

    //判断用户是否中奖
    public static void judge(int[] userNumbers , int[] luckNumber){
        int red = 0;
        int blue = 0;

        //判断红球中奖个数
        for(int i = 0; i < userNumbers.length - 1 ; i++){

            for(int j = 0; j < luckNumber.length - 1; j++){
                if(userNumbers[i] == luckNumber[j]){
                    red++;
                    break;
                }
            }
        }

        //判断蓝球个数
        if(userNumbers[6] == luckNumber[6]){
            blue++;
        }

        //输出中奖结果
        result(red , blue);
    }

    // 输出结果
    public static void result(int red , int blue){
        System.out.println("命中红球个数" + red);
        System.out.println("命中蓝球个数" + blue);

        if(red == 6 && blue == 1){
            System.out.println("中奖");
        }else{
            System.out.println("没中奖");
        }

    }

}

完整代码

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

public class Demo {
    public static void main(String[] args) {
        //存入系统随机号码
        int[] luckNumbers = RandomNumbers();

        // 存入用户号码
        int[] UserNumbers = selectNumbers();

        //判断中奖情况
        judge(UserNumbers,luckNumbers);

    }

    //用户输入红球和蓝球号
    public static int[] selectNumbers(){
        //存储号码,六个红球号,一个蓝球号
        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) + "个红球号码");
                //
                int number = sc.nextInt();
                if (number < 1 || number > 36) {
                    System.out.println("号码不在范围内,请输入1-36之间的号码");
                } else {
                    if (exist(numbers, number)) {
                        System.out.println("号码有重复,请重新输入");
                    } else {
                        //号码符合,存入数组中
                        numbers[i] = number;
                        //结束
                        break;
                    }
                }
            }

        }

        //挑选蓝球
        while(true) {
            System.out.println("请您输入第7个蓝球号码");
            //
            int number = sc.nextInt();

            if (number < 1 || number > 16) {
                System.out.println("号码不在范围内,请输入1-16之间的号码");
            }else{
                numbers[6] = number;
                //跳出循环
                break;
            }
        }

        return numbers;
    }


    //判断红球号码是否重复
    public static boolean exist(int[] numbers , int number){
        //遍历
        for(int i = 0 ; i < numbers.length ; i++){
            //如果号码为0跳出循环
            if(numbers[i] == 0){
                break;
            }
            //输入号码和数组中的数据重复
            if(numbers[i] == number){
                return true;
            }
        }
        return false;
    }

    //系统随机号码
    public static int[] RandomNumbers(){

        int[] numbers = new int[7];
        Scanner sc = new Scanner(System.in);
        Random random = new Random();

        //随机红球号码,1-36  0-35
        for(int i = 0 ; i < numbers.length - 1 ; i++){

            //循环随机号码
            while(true) {
                int number = random.nextInt(36) + 1;
                if (exist(numbers,number)) {

                } else {
                    numbers[i] = number;
                    break;
                }
            }
        }

        //随机蓝色号码
        int number = random.nextInt(16) + 1;
        numbers[6] = number;

//        for(int i = 0 ; i < numbers.length ; i++){
//            System.out.print(numbers[i] + " ");
//        }

        return numbers;
    }

    //判断用户是否中奖
    public static void judge(int[] userNumbers , int[] luckNumber){
        int red = 0;
        int blue = 0;

        //判断红球中奖个数
        for(int i = 0; i < userNumbers.length - 1 ; i++){

            for(int j = 0; j < luckNumber.length - 1; j++){
                if(userNumbers[i] == luckNumber[j]){
                    red++;
                    break;
                }
            }
        }

        //判断蓝球个数
        if(userNumbers[6] == luckNumber[6]){
            blue++;
        }

        //输出中奖结果
        result(red , blue);
    }

    // 输出结果
    public static void result(int red , int blue){
        System.out.println("命中红球个数" + red);
        System.out.println("命中蓝球个数" + blue);

        if(red == 6 && blue == 1){
            System.out.println("中奖");
        }else{
            System.out.println("没中奖");
        }

    }

}

运行结果

请您输入第1个红球号码
1
请您输入第2个红球号码
2
请您输入第3个红球号码
3
请您输入第4个红球号码
4
请您输入第5个红球号码
5
请您输入第6个红球号码
6
请您输入第7个蓝球号码
7
命中红球个数3
命中蓝球个数0
没中奖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值