用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;
}
}
}
下一篇:
だから和そこで有什么区别
