import java.util.Scanner;
/**
 * 1、完整模拟双色球开奖(需要使用到逻辑运算符、if else、while、for、数组排序、数组比对)
  			数字要求:	无论自选或机选实现红球不重复
  					6个红球号码不能重复,数字只能为1~33中的任意数字
                		一个蓝球号码可以和红球重复,但数字只能为1~16中的任意一个
			a、用户选号:
			方式一自选:让用户输入6个红球号码、输入1个蓝球号码
			方式二机选:随机抽取6个红球1个蓝球
			输出用户选号结果(应对结果进行排序)

			b、系统随机生成开奖号码:
			抽取6个红球号码、1个蓝球号码
			输出系统开奖号码(应对结果进行排序)			c、公布用户的中奖情况(一等奖,二等奖,三等奖...)
 * 
 *
 */
public class Ch01 {

	static Scanner sc=new Scanner(System.in);//实例化输入对象  全局变量


	public static void main(String[] args) {

		int [] reds=new int[6]; //存放红色球
		int blue=-1;//存放蓝球

		System.out.println("欢迎来到J18福利彩票");
		System.out.println("请选择购买方式  1、手选   2、机选");

		int xz=sc.nextInt();//选择方式
		if(xz==1){
			//手选
			//因为我们不知道要输入多少次才是不重复的6个红色球,所以定义一个死循环
			for(int i=0;i<reds.length;i++){
				System.out.println("请输入第"+(i+1)+"个号码:");
				reds[i]=sc.nextInt();//存放输入的红色球号码
				if(reds[i]<1||reds[i]>33){
					System.out.println("你输入的号码超出范围,请重新输入~!");
					i--;
				}
				//循环比较
				for(int j=0;j<i;j++){
					//判断 数组的数据是否有重复
					if(reds[j]==reds[i]){
						System.out.println("你输入的红色号码有重复");
						i--;
						break;
					}
				}
			}
			for(;;){
				System.out.println("请输入蓝色球号码:");
				blue=sc.nextInt();
				if(blue>0&&blue<17){
					break;
				}
			}

		}else{
			//机选  调用机选方法,返回机选的红色数组
			reds=getRed();
//			getRed();
			blue=(int)(Math.random()*16+1);
		}

		//福利中彩票生成
		int [] jReds=getRed();
		int Jlue=(int)(Math.random()*16+1);

		int count=0;

		//使用穷举法  进行比对  
		for(int i=0;i<reds.length;i++){
			for(int j=0;j<jReds.length;j++){
				//如果号码一致 自增
				if(reds[i]==jReds[j]){
					count++;
				}
			}
		}
		System.out.println("你的号码是:");
		for(int i=0;i<reds.length;i++){
			System.out.print(reds[i]+"\t");
		}
		System.out.println(blue);

		System.out.println("开奖号码是:");
		for(int i=0;i<jReds.length;i++){
			System.out.print(jReds[i]+"\t");
		}
		System.out.println(Jlue);

		if(blue==Jlue&&count<3){
			System.out.println("六等奖,5块,可以吃个油条");
		}else if(count==4&&blue!=Jlue){
			System.out.println("五等奖、10块,2两面");
		}else if(count==3&&blue==Jlue){
			System.out.println("五等奖、10块,2两面");
		}else if(count==5&&blue!=Jlue){
			System.out.println("四等奖、200块,私房牛肉面");
		}else if(count==4&&blue==Jlue){
			System.out.println("四等奖、200块,私房牛肉面");
		}else if(count==6&&blue==Jlue){
			System.out.println("三等奖、3000块");
		}else if(count==6&&blue!=Jlue){
			System.out.println("二等奖、100000块");
		}else if(count==6&&blue==Jlue){
			System.out.println("一等奖、5000000块");
		}else{
			System.out.println("继续努力吧,少年");
		}

	}

	/**
	 * 方法      
	 * @return
	 */

	//返回机选的红色球号码
	//公共的静态方法   这个方式的返回类型      方法名字(见名知意)
	public static int []            getRed(){
		//6个红色球数组
		int reds[]=new int[6];
		//循环数组
		for(int i=0;i<reds.length;i++){

			reds[i]=(int)(Math.random()*33+1);
			//循环比较
			for(int j=0;j<i;j++){
				//判断 数组的数据是否有重复
				if(reds[j]==reds[i]){
					i--;
					break;
				}
			}
		}


		return reds;
	}
}