目录
运行结果
双色球规则
双色球投注区分为红色球号码区和蓝色球号码区,红色球号码区由1-33共三十三个号码组成,蓝色球号码区由1-16共十六个号码组成。投注时选择6个红色球号码和1个蓝色球号码组成一注进行单式投注。
代码功能
代码可以在1-33中随机选取6个不重复的数字放入前6个红球中,在蓝色区随机在1-16中完成一次选取,模拟双色球选取的运行规律。
ArrayList类
package com.zjh3;
import java.util.Arrays;
public class ArrayList {
private Ball[] arr;
private int size = 0;
public ArrayList() {
this(10);
}
public ArrayList(int length) {
arr = new Ball[length];
}
public void add(Ball data) {
arr[size++] = data;
if (size >= arr.length)
resize();
}
/**
* @param index 需要删除的数据下标
*/
public Ball delete(int index) {
if (index >= size || size < 0)
throw new ArrayIndexOutOfBoundsException();
Ball res = arr[index];
System.arraycopy(arr, index + 1, arr, index, arr.length - index - 1);
arr[size - 1] = null;
size--;
return res;
}
public void update(int index, Ball data) {
if (index >= size || size < 0)
throw new ArrayIndexOutOfBoundsException();
arr[index] = data;
}
public Ball[] getData() {
Ball[] res = new Ball[size];
System.arraycopy(arr, 0, res, 0, size);
return res;
}
public String toString() {
return Arrays.toString(arr);
}
private void resize() {
Ball[] res = new Ball[arr.length * 3 / 2];
System.arraycopy(arr, 0, res, 0, arr.length);
this.arr = res;
}
public int size() {
return this.size;
}
public Ball[] sort() {
// for(int i=1;i<size;i++) {
// for(int k=0;k<size-i;k++) {
// if(arr[k].compareTo(arr[k+1])>0) {
// Ball tmp=arr[k];
// arr[k]=arr[k+1];
// arr[k+1]=tmp;
// }
// }
// }
Ball[] arr1 = this.getData();
Arrays.sort(arr1);
return arr1;
}
}
bull类
package com.zjh3;
public final class Ball implements Comparable<Ball> {
private final int number;
private final BallColor color;
public Ball(int num,BallColor color) {
this.number = num;
this.color = color;
}
public int getNumber() {
return number;
}
public BallColor getColor() {
return color;
}
@Override
public String toString() {
return "(" + number + ", " + color + ")";
}
@Override
public int compareTo(Ball o) {
int res = this.color.compareTo(o.color);
if (res == 0) {
res=this.number-o.number;
}
res*=-1;
return res;
}
}
bullColor类
package com.zjh3;
public enum BallColor {
RED("红球"), BLUE("蓝球");
private String name;
private BallColor(String name) {
this.name=name;
}
@Override
public String toString() {
return this.name;
}
}
Test类
package com.zjh3;
import java.util.Arrays;
import java.util.Random;
//红色球号码从1--33中选择;蓝色球号码从1--16中选择
//每注投注号码由6个红色球号码和1个蓝色球号码组成
public class Test1 {
public static void main(String[] args) {
ArrayList list1 = new ArrayList();
for (int i = 1; i <= 33; i++)
list1.add(new Ball(i, BallColor.RED));
ArrayList list3 = new ArrayList(7);
Random r = new Random();
for (int i = 0; i < 6; i++) {
int pos=r.nextInt(list1.size());
com.zjh3.Ball data=list1.delete(pos);
list3.add(data);
}
list3.add(new Ball(r.nextInt(16)+1, BallColor.BLUE));
list3.sort();
com.zjh3.Ball[] res=list3.getData();
System.out.println(Arrays.toString(res));
}
}
运行结果