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