package day05;
import java.util.Random;
import java.util.Arrays;
/**
* 〈一句话功能简述〉<双色球> 〈功能详细描述〉
*/
public class doubleBallDemo {
public static void main(String[] args) {Random rand = new Random(); //new一个随机方法,随机方法Random在java.util中
// 红球方法
int[] red = new int[5]; //定义一个int类型的数组,数组长度为5位
red = arrayball(red); //自定义一个方法(函数)从1-33中随机抽取5个无重复红球,并进行从小到大排序
// 篮球方法
int blue = rand.nextInt(16)+1; //从1-16中随机抽取一个篮球,*注意rand.nextInt(x)是[0,x)的集合,不包含x
// 输出结果
System.out.println("红球:"+Arrays.toString(red) +" 篮球:"+ blue); //Arrays.toSrting 将数组内容转换成字符串
}
/**
* 功能描述: <从1-33中随机抽取5个无重复红球,并进行从小到大排序> 〈功能详细描述〉
*
* @param red
* @return
* @see [相关类/方法](可选)
* @since [产品/模块版本](可选)
*/
private static int[] arrayball(int[] red) { //返回类型和参数类型要注意,这里都是int
for (int i = 0; i < red.length; i++) { //第一层循环
Random rand = new Random();
int temp = 0; //定义一个临时变量
int k = rand.nextInt(33)+1; //取1-33随机数赋值
for(int a= 0; a<=i; a++){ //第二层循环判断是否重复
if(k != red[a]){
red[i] = k; //判断k的值与当前red数组值不同才赋值
}
} //第二层循环结束
temp =red[i]; //临时赋值准备排序
for(int j =i-1; j>=0 && temp < red[j]; j--){ //另一个第二层循环用于排序,用temp和red[j]进行比较
red[j+1] = red[j]; //循环赋值
red[j] = temp;
}
}
return red; //返回arrayball方法的参数
}
}