模拟双色球案例

来源:互联网 发布:逆波兰表达式算法 java 编辑:程序博客网 时间:2024/06/06 03:18
/**    模拟双色球案例    准备相关变量    1.用户选择是机选还是手选    2.接受用户选号(6红,1蓝)    3.生成系统号码(6红,1蓝)    3.比较系统号码和用户号码,记录个数    5.验证是否中奖    6.系统号码排序    7.公布结果*/import java.util.Scanner;import java.util.Arrays;import java.util.Random;public class doubleball{    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("双色球游戏开始,good luck!");        System.out.println("请问您是要机选还是手选号码(1:机选,2:手选)");        Scanner input = new Scanner(System.in);        Random r = new Random();        boolean flag = true;        while(flag){            int isAuto = input.nextInt();            switch(isAuto){                case 1:                    //机选                    computerSelection(redBall,userRedBall);//机选红球                    userBlueBall = r.nextInt(16)+1;//机选蓝球                    flag =false;                    break;                case 2:                    //手选                    System.out.println("请选择6个红球号码(1-33):");                    for(int i=0;i<userRedBall.length;i++){                        userRedBall[i] = input.nextInt();                    }                    System.out.println("请选择一个蓝球号码(1-16)");                    userBlueBall = input.nextInt();                    flag = false;                    break;                default:                    System.out.println("请问您是要机选还是手选号码(1:机选,2:手选)");                    break;            }        }        //系统随机生成号码        //红球        computerSelection(redBall,sysRedBall);        //蓝球        sysBlueBall = r.nextInt(16)+1;        //统计结果:        //统计红球        for(int i=0;i<userRedBall.length;i++){            for(int j=0;j<sysRedBall.length-redCount;j++){                if(userRedBall[i]==sysRedBall[j]){                    int temp = sysRedBall[j];                    sysRedBall[j] = sysRedBall[sysRedBall.length-1-redCount];                    sysRedBall[sysRedBall.length-1-redCount] = temp;                    redCount++;                    break;                }            }        }        //统计蓝球        if(userBlueBall==sysBlueBall){            blueCount=1;        }        //验证是否中奖        if(blueCount==0 && redCount<=3){            System.out.println("啥都没有中,那就再接再厉吧,加油!");        }else if(blueCount==1 && redCount==3){            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("中了4等奖,200块钱");        }else if(blueCount==1 && redCount==5){            System.out.println("中了三等奖,3000块钱");        }else if(blueCount==0 && redCount==6){            System.out.println("中了二等奖");        }else if(blueCount==1 && redCount==6){            System.out.println("中了一等奖,500w");        }else{            System.out.println("系统有误,中奖无效");        }        //公布系统号码        System.out.println("本期中奖红球号码为:");        sort(sysRedBall);        System.out.println(Arrays.toString(sysRedBall));        System.out.println("本期中奖蓝球号码为:"+sysBlueBall);        //公布用户号码        System.out.println("您选择的红球号码为:");        sort(userRedBall);        System.out.println(Arrays.toString(userRedBall));        System.out.println("您选择的蓝球号码为:"+userBlueBall);        System.out.println("买双色球,成就你的豪车梦");    }    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]){                    ball[j]=ball[j]+ball[j+1];                    ball[j+1]=ball[j]-ball[j+1];                    ball[j]=ball[j]-ball[j+1];                }            }        }    }    public static void computerSelection(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;        }    }}
原创粉丝点击