永发信息网

java 面向对象 双色球设计

答案:1  悬赏:80  手机版
解决时间 2021-02-27 15:46
java 面向对象 双色球设计
最佳答案
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:主方法引用以上两个对象的时候注意引入你对象所放位置的包
结果如下:

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
CF房间怎么改名字
信和家具信庭轩是纯实木家具吗
中国网通太平镇支局怎么去啊,有知道地址的么
家常炖鱼时用翻个吗?为什么?
RAID 中的 VD 是做什么用的??
超标公务车是什么意思?
父亲坟上有个很深的洞怎么办?谢谢您
购买一手房的房价包含了维修基金吗
老马小店这个地址在什么地方,我要处理点事
苏联为何在中国边疆陈兵百万?
兴隆五金交电门市地址在哪,我要去那里办事
笔记本电脑网卡时好时坏
2a+(a+b)-2(a+b)去括号再合并同类项,
http://www.kf999.org 电脑最近总弹出窗口,
国家正常节假日有哪些
推荐资讯
有没有视频监控报警后自动将监控画面发送到手
惠普打印机怎么连接到笔记本电脑
我能享受北京住房补贴政策吗?
斑形成的原因,斑形成的原因,斑是怎么长出来
魔兽争霸3冰封王座1.26a版修改器+4怎么用?
老四若石足疗高新店地址在什么地方,想过去办
楼下水果店吵死了,要打什么电话投诉
EXCEL中 要统计一列或一行中有数值的项有几个
深圳市致远优学教育科技有限公司地址在什么地
把xian tian zhi you er you ,hou tian zhi l
民营医院怎么做 会计凭证
新鲜各式小海鱼怎么做好吃,新鲜各式小海鱼的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?