java双色球彩票小程序

/**

 * @author MaskedMen

 *双色球 彩票代码

 */

//方式一:面向对象思想来写

public class Lettery {


public static void main(String[] args) {

roll();//摇球

}

//从球池中摇出双色球号码

public static void roll() {

Ball[] ballBlue = new Ball[16];//篮球池

Ball[] ballRed=new Ball[33];//红球池

Ball[]  takeBall = new Ball[6];

//生成篮球

for(int i=1;i<=ballBlue.length;i++){

ballBlue[i-1] = new Ball(i, "篮球", false);

}

//生成红球

for(int i=1;i<=ballRed.length;i++){

ballRed[i-1] = new Ball(i, "红球", false);

}

//取出6个红球

for(int i=0;i<takeBall.length;i++){

int random=0;

do{

random = (int)(Math.random()*ballRed.length);

}while(ballRed[random].isStatus());//若摇出的球的属性status=true,则继续摇滚

takeBall[i]=ballRed[random];

ballRed[random].setStatus(true);//已经出现的球,将其status属性设置为true

}

//输出取出的红球

System.out.print(ballRed[0].getColor()+"为:");

for(Ball b:takeBall){

System.out.print(" "+b.getNumber());

}

//输出取出的蓝球

int number = ballBlue[(int)(Math.random()*ballBlue.length)].getNumber();

System.out.println("\n"+ballBlue[0].getColor()+"为:"+number);

}


}

//球类

class Ball{

int number;

String color;

boolean status;

public Ball(int number, String color, boolean status) {

super();

this.number = number;

this.color = color;

this.status = status;

}


public int getNumber() {

return number;

}

public String getColor() {

return color;

}

public boolean isStatus() {

return status;

}

public void setStatus(boolean status) {

this.status = status;

}

}



方式二:非面向对象


//双色球彩票

public static void loterry(){

int length=33;//红球的个数

int[] blueBal = new int[16];//篮球池

int[] redBal = new int[length];//红球池

int[] takeRed = new int[6];

int num = 0; //随机生成的红球池下标

boolean[] bln  = new boolean[33];

//生成篮球1-16号

for(int i=0;i<blueBal.length;i++){

blueBal[i]=i+1;

}

//生成红球1-33号

for(int i=0;i<redBal.length;i++){

redBal[i]=i+1;

}

   //红球池中随机取出6个红球  且不重复 方法一

for(int i=0;i<6;i++){

num = (int)(Math.random()*redBal.length);

takeRed[i] = redBal[num];

for(int j=num;j<redBal.length-1;j++){//将数组中的元素向前移动

redBal[j]=redBal[j+1];

}                                                                                                                                                                             

redBal = Arrays.copyOf(redBal, redBal.length-1);//改变数组的长度

}

 //红球池中随机取出6个红球   且不重复 方法二

/*for(int i=0;i<takeRed.length;i++){

int  redRan;

do{

 redRan = (int)(Math.random()*33);

}while(bln[redRan]);

takeRed[i]=redBal[redRan];

bln[redRan]=true;//标记使用

}*/

System.out.print("红球为:");

for(int i=0;i<6;i++){

System.out.print(" "+takeRed[i]);

}

System.out.print("\n篮球为:"+blueBal[(int)(Math.random()*blueBal.length)]);

}


你可能感兴趣的:(java,小程序,双色球)