Java之双色球案例

双色球案例分析及中奖要求

1.用户选择机选还是手选

2.如何产生蓝球和红球

3.如何生成系统号码

4.如何接受用户的选号

5.比较系统号码和用户号码,记录中奖个数

6.如何验证是否中奖

7.排序

8.公布中奖号码

 代码实现

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class Test {
    public static void main(String[] args) {
        //定义相关变量
        int[] userRedBall = new int[6] ;//用户选择的红球
        int[] sysRedBall = new int[6] ;//系统生成的红球
        int userBlueball = 0 ;//用户选择的蓝球
        int sysBlueball = 0;//系统生成的蓝球
        int redCount = 0 ;//记录用户选择正确的红球数
        int blueCount = 0 ;//记录用户选择正确的蓝球数
        int[] redBall = new int[33] ;//用于存储1-33之间的红球号码
        //随机生成6个1-33之间不重复的数
        for (int i = 0;i < redBall.length; i++ ){
            redBall[i] = i+1 ;
        }

        System.out.println("请问你是要机选号码还是手选号码(1:机选 , 2:手选)");
        Scanner sc = new Scanner(System.in);
        Random r = new Random();//生成随机数

        boolean falg = true ;
        while (falg){
            int chioce = sc.nextInt() ;
            switch (chioce){
                case 1:
                    //机选
                    computer(redBall,userRedBall);//机选红球
                    userBlueball = r.nextInt(16)+1 ;//机选蓝球
                    falg = false ;
                    break;
                case 2:
                    //手选
                    System.out.println("请选择6个红球号码(1-33):");
                    for(int i=0 ;i < userRedBall.length; i++) {
                        userRedBall[i]=sc.nextInt();
                    }
                    System.out.println("请选择1个蓝球号码(1-16)");
                    userBlueball = sc.nextInt();
                    falg = false ;
                    break;
                default:
                    System.out.println("请问你是要机选号码还是手选号码(1:机选 , 2:手选)");
            }
        }
        //系统随机生成号码
        //红球
        computer(redBall,sysRedBall);
        //蓝球
        sysBlueball = r.nextInt(16)+1 ;

        //统计结果
        //红球
        for (int i = 0 ;i < userRedBall.length ; i++){
            for (int j = 0 ; j < sysRedBall.length ; j++){
                if (sysRedBall[i] == userRedBall[i]){
                    redCount++ ;
                    break;
                }
            }
        }
        //蓝球
        if(userBlueball == sysBlueball){
            blueCount++ ;
        }

        //验证是否中奖
        if((blueCount == 1 && redCount == 2) || (blueCount == 1 && redCount == 1) || blueCount == 1){
            System.out.println("中了六等奖,5块钱");
        }else if((blueCount == 1 && redCount == 3) || (blueCount == 0 && redCount ==4)){
            System.out.println("中了五等奖,10块钱");
        }else if((blueCount == 1 && redCount == 4) || (blueCount == 0 && redCount ==5)){
            System.out.println("中了四等奖,200块钱");
        }else if(blueCount == 1 && redCount == 5){
            System.out.println("中了三等奖,3000块钱");
        }else if(blueCount == 0 && redCount == 6){
            System.out.println("中了二等奖,150w!");
        }else if(blueCount == 1 && redCount == 6){
            System.out.println("中了一等奖,500w!");
        }else{
            System.out.println("很遗憾.未中奖");
        }
        //输出中奖号码
        sort(sysRedBall);
        System.out.println("本期中奖号码为:红球"+ Arrays.toString(sysRedBall)+"\t"+"蓝球"+sysBlueball);
        //输出用户号码
        sort(userRedBall);
        System.out.println("用户选择的号码为:红球"+ Arrays.toString(userRedBall)+"\t"+"蓝球"+userBlueball);
    }

    //排序
    public static void sort(int[] ball){
        for (int i = 0 ; i < ball.length-1 ; i++){
            for (int j = 0 ; j < ball.length-1-i ; j++){
                if (ball[j] > ball[j+1]){
                    int temp = ball[j] ;
                    ball[j] = ball[j+1] ;
                    ball[j+1] = temp ;
                }
            }
        }
    }
    //用于在指定数列中,随机生成多个不重复的数
    public static void computer(int[] redBall ,int[] userRedBall){
        Random r = new Random();
        int index = -1 ;
        for (int i = 0 ; i < userRedBall.length; i++){
         index = r.nextInt(redBall.length-i);
            userRedBall[i] = redBall[index] ;

         int temp = redBall[index] ;
            redBall[index] = redBall[redBall.length-1-i];
            redBall[redBall.length-1-i] = temp ;
        }
    }
}

运行结果

 

 


版权声明:本文为zy15193118020原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。