栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java之双色球案例

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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 ;
        }
    }
}
运行结果

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/351600.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号