用java实现双色球彩票
一、双色球彩票玩法 玩法说明: 双色球投注区分为红球号码和蓝球号码区,红球号码范围为(1,33),蓝球号码为(1,16),双色球每期从33个红球中开出6个号码,从16个蓝球中开出一个号码作为中奖号码,双色球玩法即是竞猜开奖号码的6个红球号码和1个蓝球号码,顺序不限。 分析: 1、用户选择是机选还是手选号码 2、接受用户号码(6红,1蓝) 3、生成系统号码(6红,1蓝) 4、比较系统号码和用户号码,记录个数 5、验证是否中奖 6、系统号码排序 7、公布结果
import java.util.Scanner; import java.util.Random; import java.util.Arrays; public class test3 { 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]; for(int i=0;i<redBall.length;i++) { redBall[i]=i+1; } System.out.println("双色球游戏开始,good luck!"); System.out.println("请问你是要是机选还是手选号码(1:机选,2:手选)"); Scanner in=new Scanner(System.in); Random r=new Random(); boolean flag=true; while(flag) { int isAuto=in.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]=in.nextInt(); } System.out.println("请选选择1个蓝球号码(1-16):"); userBlueBall=in.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当中概率的大放前面,提高运行效率 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("中了四等奖,你可以得到200元"); }else if(blueCount==1&&redCount==5) { System.out.println("中了三等奖,你可以得到3000元"); }else if(blueCount==0&&redCount==6) { System.out.println("中了二等奖,你可以得到500万"); }else if(blueCount==1&&redCount==6) { System.out.println("中了一等奖,你可以得到1000万"); } 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); } 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; } } }
下一篇:
だから和そこで有什么区别