永发信息网

java 面向对象 双色球设计

答案:1  悬赏:80  手机版
解决时间 2021-02-27 15:46
  • 提问者网友:轮囘Li巡影
  • 2021-02-27 04:00
java 面向对象 双色球设计
最佳答案
  • 五星知识达人网友:狂恋
  • 2021-02-27 04:32
1、球对象

public class Ball {

private String color;

private int number;

public String getColor() {
return color;
}

public void setColor(String color) {
this.color = color;
}

public int getNumber() {
return number;
}

public void setNumber(int number) {
this.number = number;
}


}2、球池对象

import java.util.Random;

public class BallPond {

private Ball[] balls;

private Ball[] resultBalls;

public Ball[] getBalls() {
return balls;
}

//生成原始球池
public void setBalls(String color) {
Ball[] balls = null;
if(color.equals("red")){//生成红球池
Ball[] redBalls = new Ball[33];
for(int i=1;i<=33;i++){
Ball ball = new Ball();
ball.setColor("red");
ball.setNumber(i);
redBalls[i-1] = ball;
}
balls = redBalls;
}else{//生成蓝球池
Ball[] blueBalls = new Ball[16];
for(int i=1;i<=16;i++){
Ball ball = new Ball();
ball.setColor("blue");
ball.setNumber(i);
blueBalls[i-1] = ball;
}
balls = blueBalls;
}
this.balls = balls;
}

public Ball[] getResultBalls() {
return resultBalls;
}

//生成结果球池
public void setResultBalls() {
Ball[] resultBalls = null;
Random r = new Random();
if(("red").equals(this.balls[0].getColor())){//取红球6个
Ball[] resultRedBalls = new Ball[6];
int[] nums = new int[6];
for(int i=0;i<6;i++){
int n = r.nextInt(33)+1;
int flag = 0;
for(int j=0;j<6;j++){
if(n==nums[j]){
flag = flag + 1;
}
}
if(flag==0){
nums[i]=n;
}
}
for(int k=0;k<6;k++){
int tip = nums[k];
resultRedBalls[k] = this.balls[tip];
}
resultBalls = resultRedBalls;
}else{//取蓝球1个
Ball[] resultBlueBalls = new Ball[1];
int n = r.nextInt(16)+1;
resultBlueBalls[0] = this.balls[n];
resultBalls = resultBlueBalls;
}
this.resultBalls = resultBalls;
}


}3、主方法调用

public class DoubleColorBall {

public static void main(String[] args) {

//红球池
BallPond redBalls = new BallPond();

//蓝球池
BallPond blueBalls = new BallPond();

//初始化球池
redBalls.setBalls("red");
blueBalls.setBalls("blue");

//抽奖
redBalls.setResultBalls();
blueBalls.setResultBalls();

//输出获奖球号
System.out.println("红球:");
for(int i=0;i<6;i++){
System.out.print(redBalls.getResultBalls()[i].getNumber()+" ");
}
System.out.println("
蓝球:");
System.out.print(blueBalls.getResultBalls()[0].getNumber());
}
}PS:主方法引用以上两个对象的时候注意引入你对象所放位置的包
结果如下:

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯