欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

用Java实现双色球规则以及中奖结果

程序员文章站 2024-02-02 15:16:58
...

本次代码模拟双色球选取结果,但与实际依旧有差别。

虽说是Java中Random随机产生数字,但依旧有规律可循。在此不做重点说明忽略不计。

双色球规则

    红球为1-33中随机6个不相同数字
    蓝球为1-16中随机一个数字
    一等奖:7个号码相符(6个红色球号码和1个蓝色球号码)(红色球号码顺序不限,下同)
    二等奖:6个红色球号码相符;
    三等奖:5个红色球号码和1个蓝色球号码相符;
    四等奖:5个红色球号码,或4个红色球号码和1个蓝色球号码相符;
    五等奖:4个红色球号码,或3个红色球号码和1个蓝色球号码相符;
    六等奖:1个蓝色球号码相符(有无红色球号码相符均可)。

代码如下面一段漂亮的代码片

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class shuangSeqiu {
    public static void main(String[]args){
        /*
        双色球
        红球为1-33中随机6个不相同数字
        蓝球为1-16中随机一个数字
        一等奖:7个号码相符(6个红色球号码和1个蓝色球号码)(红色球号码顺序不限,下同)
        二等奖:6个红色球号码相符;
        三等奖:5个红色球号码和1个蓝色球号码相符;
        四等奖:5个红色球号码,或4个红色球号码和1个蓝色球号码相符;
        五等奖:4个红色球号码,或3个红色球号码和1个蓝色球号码相符;
        六等奖:1个蓝色球号码相符(有无红色球号码相符均可)。
         */
        //1:用户选球
        int []userRedball=new int[6];
        Scanner scanner=new Scanner(System.in);
        for(int i=0;i<userRedball.length;i++){
            System.out.println("请输入第"+(i+1)+"个红球");

            userRedball[i]=scanner.nextInt();
        }
        System.out.println("请输入您所选蓝球:");
        int userBlueball=scanner.nextInt();


        //2.电脑选球
        int [] redBall=new int[33];
        //往红球池充球
        for(int k=0;k<redBall.length;k++){
            redBall[k]=k+1;
        }
        //电脑选红球
        int []computerRedball=new int[6];
        Random random=new Random();
        for(int m=0;m<computerRedball.length;m++){
            while (true){
                int index=random.nextInt(33);
                if(redBall[index]!=0){
                    computerRedball[m]=redBall[index];
                    redBall[index]=0;
                    break;
                }
            }
        }
        //电脑选蓝球
        int computerBlueball=random.nextInt(16);
        //3.中奖结果

        System.out.println("玩家所选结果");
        System.out.println(Arrays.toString(userRedball));
        System.out.println(userBlueball);
        System.out.println("***************************");
        System.out.println("电脑所选结果");
        System.out.println(Arrays.toString(computerRedball));
        System.out.println(computerBlueball);
        int count=0;
        for(int num1:computerRedball){
            for(int num2:userRedball){
                if(num1==num2){
                    count+=1;
                }
            }
        }
        if(count==6&&computerBlueball==userBlueball){
            System.out.println("一等奖");
        }else if(count==6){
            System.out.println("二等奖");
        } else if (count == 5 && computerBlueball == userBlueball) {
            System.out.println("三等奖");
        }else if(count==5||count==4&&computerBlueball==userBlueball){
            System.out.println("四等奖");
        }else if(count==4||count==3&&computerBlueball==userBlueball){
            System.out.println("五等奖");
        }else if(computerBlueball==userBlueball){
            System.out.println("六等奖");
        }else{
            System.out.println("谢谢惠顾");
        }

    }
}

运行结果如下:

请输入第1个红球
8
请输入第2个红球
12
请输入第3个红球
22
请输入第4个红球
31
请输入第5个红球
4
请输入第6个红球
15
请输入您所选蓝球:
9
玩家所选结果
[8, 12, 22, 31, 4, 15]
9
***************************
电脑所选结果
[13, 16, 1, 20, 4, 7]
3
谢谢惠顾

Process finished with exit code 0

本人刚接触Java,代码粗鄙不堪,在此希望各位读者多多批评指教!
谢谢!