用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;			
		}
	}

}
经验分享 程序员 微信小程序 职场和发展