首页 > 学院 > 开发设计 > 正文

双色球算法

2019-11-06 06:30:33
字体:
来源:转载
供稿:网友
import java.util.Random;import java.util.Scanner;/** * 双色球投注区分为红球号码区和蓝球号码区,红球号码范围为01~33,蓝球号码范围为01~16。 * 双色球每期从33个红球中开出6个号码,从16个蓝球中开出1个号码作为中奖号码, * 双色球玩法即是竞猜开奖号码的6个红球号码和1个蓝球号码,顺序不限。 *  1、产生蓝球和红球,是机选呢,还是手选,机选的还就随机产生6红1蓝,2、接收用户选号3、验证是否中奖4、公布本期中奖号码 */public class Day5 {public static void main(String[] args) {int[] userRedBall = new int [6];int userBlueBall = 0;int[] sysRedBall = new int[6]; //系统随机生成六个空间的随机数int sysBlueBall = 0;int redCount = 0;   //记录红球的选中的个数int blueCount = 0;  //记录蓝球的选中的个数//填充红求被选区数组Random r = new Random();int[] redBall = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33};int index = 0; //用于作为下标for(int i=0;i<sysRedBall.length;i++){ // 生成六个红球while(true){   //不知道要循环的次数index = r.nextInt(33);  // 每次生成一个下表if(redBall[index]!=-1){ //不等于-1表示当前号还在,当等于-1,那么这个号码就被取过了sysRedBall[i] = redBall[index]; redBall[index] = -1;    // break;}}}sysBlueBall = r.nextInt(16)+1; // 生成篮球//接受用户的选号Scanner input = new Scanner(System.in);System.out.PRintln("请选择(1-33不重复的红球号码)");for(int i=0;i<userRedBall.length;i++){userRedBall[i] = input.nextInt();  //将用户的选的数存入}System.out.println("请选择1个篮球的号码(1 - 16)");userBlueBall = input.nextInt();//判断用户是否中奖for(int i=0;i<sysRedBall.length;i++){for(int j=0;j<userRedBall.length;j++){if(sysRedBall[i]==userRedBall[j]){redCount++;break;}}}if(redCount==6 && blueCount==1){System.out.println("恭喜你中了一等奖");}else if(redCount==6 && blueCount==0){System.out.println("恭喜你中了二等奖");}else if(redCount==5 && blueCount==1){System.out.println("恭喜你中了三等奖");}else if((redCount==5 && blueCount==0) || (redCount==4 && blueCount==1)){System.out.println("恭喜你中了四等奖");}else if((redCount==4 && blueCount==0) || (redCount==3 && blueCount==1)){System.out.println("恭喜你中了五等奖");}else if(blueCount==1){System.out.println("恭喜你中了六等奖");   }else{    System.out.println("没有中奖,继续努力");   }//公布结果System.out.println("本期的红球号码");int temp =1;for(int i=0;i<sysRedBall.length-1;i++){for(int j=0;j<sysRedBall.length-1-i;j++){if(sysRedBall[j]>sysRedBall[j+1]){temp = sysRedBall[j];sysRedBall[j] = sysRedBall[j+1];sysRedBall[j+1] = temp;}}}for(int i=0;i<sysRedBall.length;i++){System.out.print(sysRedBall[i]+" ");}System.out.println();System.out.println("本期的篮球号码是 :"+sysBlueBall);}}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表