双色球系统

发布时间 2023-05-28 11:32:15作者: Karlshell
package com.Demo;

import java.util.Random;
import java.util.Scanner;
//双色球系统
public class Test8 {
    public static void main(String[] args) {
        int[] uesrnumber=uesrSele();
        System.out.println("您投注号码为:");
        dayin(uesrnumber);

        int[] lucknumber=zjnumber();
        System.out.println("中奖号码为:");
        dayin(lucknumber);

        judge(uesrnumber,lucknumber);

    }
    //打印
    public static void dayin(int[] arr){
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(i==arr.length-1?arr[i]:arr[i]+",");
        }
        System.out.println("]");
    }
    //设计一个方法,用于让用户投注一组号码并返回(前6个是红球号码,最后一个是篮球)
    public static int[] uesrSele(){
        //创建一个整数数组,用于储存号码
        Scanner sc=new Scanner(System.in);
        int[] numbers=new int[7];
        //遍历前6个位置,让用户依次投注6个红球号码,存入
        for (int i = 0; i < numbers.length-1; i++) {
            while (true) {
                //开始让用户为当前位置投注一个红球号码
                System.out.println("请您输入第"+(i+1)+"个红球号码(1-33之间不能重复):");
                int number=sc.nextInt();
                //先判断是否在1-33之间
                if (number<1 || number>33){
                    System.out.println("对不起,您输入的号码不在1-33之间");
                }else {
                    //号码是否重复
                    if (exist(numbers,number)){
                        //号码重复
                        System.out.println("红球号码重复");
                    }else {
                        //号码可以使用
                        numbers[i]=number;
                        break;//结束死循环
                    }
                }
            }
        }
        while (true) {
            System.out.println("请您输入最后一个篮球号码(1-16):");
            int number=sc.nextInt();
            if (number<1 || number>16){
                System.out.println("篮球号码范围不对");
            }else {
                numbers[6]=number;
                break;
            }
        }
        return numbers;
    }
    private static boolean exist(int[] numbers, int number) {
        //判断这个数字是否在number数组中存在
        for (int i = 0; i < numbers.length; i++) {
            if (numbers[i]==number){
                return true;
            }

        }
        return false;
    }
    //设置一个方法,随机一组中奖号码
    public static int[] zjnumber(){
        //创建一个数组,用来储存这7个号码
        int[] numbers=new int[7];
        Random r=new Random();
        //遍历数组

            for (int i = 0; i < numbers.length; i++) {
                //为当前这个位置随机一个红球号码出啦存入
                while (true) {
                    int number=r.nextInt(33)+1;
                    //判断这个号码是否出现过
                    if (!exist(numbers,number)){
                        //number不重复
                        numbers[i]=number;

                        break;//结束死循环
                    }
                }
            }
        //录入一个篮球号码
        numbers[6] = r.nextInt(16)+1;
        return numbers;
    }

    //设置一个方法用于判断用户的中将情况
    public static void judge(int[] userNumber,int[] luckNumber){
        //分别定义两个变量用于记住红球命中了几个篮球命中了几个
        int red=0;
        int blue=0;
        //先判断红球命中的数量
        //遍历用户投注的号码的前6个红球
        for (int i = 0; i < userNumber.length-1; i++) {
            //开始遍历
            for (int j = 0; j < luckNumber.length-1; j++) {
                if (userNumber[i]==luckNumber[j]){
                    red++;
                    break;
                }
            }
        }
        blue=userNumber[6]==luckNumber[6]?1:0;

        System.out.println("您命中的红球数量是:"+red);
        System.out.println("您命中的蓝球数量是:"+blue);

        //判断中将详情,并输出结果
        if(red==6 && blue==1){
            System.out.println("中奖1000万");
        }else if (red==6 && blue==0){
            System.out.println("中奖500万");
        }else if (red==5 && blue==1){
            System.out.println("中奖3000元");
        }else if (red==5 && blue==0 || red==4 && blue==1){
            System.out.println("中奖200元");
        }else if (red==4 && blue==0 || red==3 && blue==1) {
            System.out.println("中奖10元");
        }else if (red<3 && blue==1) {
            System.out.println("中奖5元");
        }else {
            System.out.println("感谢为福利事业做出贡献~~");
        }






    }

}