package Day0504;
/**
* 球(双色球摇奖用的数字球)
*
* @author fengqili
*
*/
public class Ball {
private int number;
private boolean used;
/**
* 构造器
*
* @param number球得号码
*/
public Ball(int number) {
this.number = number;
this.used = false;
}
/**
* used属性的访问器
*
* @return 如果球被使用过返回true否则放回false
*/
public boolean isUsed() {
return used;
}
/**
* used属性的修改器
*
* @param used
* true表示被使用过false表示球没有被使用过
*/
public void setUsed(boolean used) {
this.used = used;
}
/**
* number属性的访问器
*
* @return 球的号码
*/
public int getNumber() {
return number;
}
/**
* 获得字符串形式的球的号码
*
* @return 字符串形式的号码
*/
public String getNumStr() {
return number < 10 ? "0" + number : "" + number;
}
}
package Day0504;
import java.util.Arrays;
import java.util.Comparator;
/**
* 双色球摇号机
*
* @author fqngqili
*
*/
public class LotteryMachine {
private Ball[] redBalls = new Ball[33];
private Ball[] blueBalls = new Ball[16];
/**
* 装入红色球和蓝色球
*/
public void load() {
for (int i = 0; i < redBalls.length; i++) {
redBalls[i] = new Ball(i + 1);
}
for (int i = 0; i < blueBalls.length; i++) {
blueBalls[i] = new Ball(i + 1);
}
}
public Ball getBlueBall() {
int randomIndex = (int) (Math.random() * blueBalls.length);
return blueBalls[randomIndex];
}
/**
*
* @return 装红色球的数组
*/
public Ball[] getRedBalls() {
Ball[] balls = new Ball[6];
for (int i = 0; i < balls.length; i++) {
Ball temBall = null;
do {
int randomIndex = (int) (Math.random() * redBalls.length);
temBall = redBalls[randomIndex];
} while (temBall.isUsed());
balls[i] = temBall;
temBall.setUsed(true);
}
Arrays.sort(balls, new Comparator<Ball>() {
public int compare(Ball o1, Ball o2) {
return o1.getNumber() - o2.getNumber();
}
});
return balls;
}
/**
* 生成随机号码
*
* @return 随机号码的字符串
*/
public String generateRandomNumber() {
this.load();
Ball[] rBalls = this.getRedBalls();
Ball bBall = this.getBlueBall();
String str = "";
for (int i = 0; i < rBalls.length; i++) {
str += rBalls[i].getNumStr() + " ";
}
str += "|";
str += bBall.getNumStr();
return str;
}
}
package Day0504;
import java.util.Scanner;
public class Teso1 {
public static void main(String[] args) {
LotteryMachine lm = new LotteryMachine();
Scanner sc = new Scanner(System.in);
System.out.print("机选几注: ");
int n = sc.nextInt();
for (int i = 1; i <= n; i++) {
System.out.println(lm.generateRandomNumber());
}
sc.close();
}
}