package com.color.program;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class DoubleBall {
// 用来保存产生的每注双色球号码
private List<int[]> ballList;
// 保存一注号码的数组
private int[] ball;
/**
* 构造方法
*
* @param number,产生号码的数量
*/
public DoubleBall() {
Scanner s = new Scanner(System.in);
System.out.print("请输入产生随机号码数量:");
int number = s.nextInt();
this.init();
// 完成ballList的初始化
ballList = new ArrayList<int[]>();
for (int i = 0; i < number; i++) {
// 初始化ball
ball = new int[7];
// 产生一注号码
ball = this.createBall(ball);
ball = this.sort(ball);
// 将这注产生的号码添加到list之中
ballList.add(ball);
}
}
/**
* 产生双色球的七个号码
*
* @param ball
* @return
*/
public int[] createBall(int[] ball) {
for (int i = 0; i < ball.length; i++) {
// 默认最后一个号码保留给蓝色球
if (i < ball.length - 1) {
// 如果是红色球,则验证每个产生的号码是否已经存在。
ball = this.validateBall(ball, i);
} else {
// 如果是蓝色球,直接产生1--16之间的随机数
ball[i] = (int) Math.round(Math.random() * 15 + 1);
}
}
// 产生号码完毕,返回这注产生的号码。
return ball;
}
/**
* 每次只产生一个红色号码,并验证此号码是否已经存在, 如果存在,重新产生号码,只到没有重复号码。
*
* @param ball
* @param index
* 产生红色球数组的下标,即第几个号码。
* @return
*/
public int[] validateBall(int[] ball, int index) {
// 产生一个1--33的随机数
int random = (int) Math.round(Math.random() * 32 + 1);
while (true) {
int i = 0;
for (; i < index; i++) {
// 如果存在重复数字
if (random == ball[i]) {
// 重新产生号码
random = (int) Math.round(Math.random() * 32 + 1);
// 并且跳出for循环,进入while循环
i = index + 1;
}
}
// 如果验证完了所有号码,那把这个号码插入数组,并返回
if (i == index) {
ball[index] = random;
return ball;
}
}
}
/**
* 显示产生的双色球号码
*
*/
public void displayBall() {
System.out.println("============产生号码的详细信息如下============");
for (int[] ball : ballList) {
for (int i = 0; i < ball.length; i++) {
// 如果号码不足两位数,在前面添加"0"显示。
System.out.print(((ball[i] < 10) ? ("0" + ball[i]) : ball[i])
+ "\t");
}
System.out.println();
}
}
/**
* 完成初始化,制定双色球号码的 开始和结束区域
*
*/
public void init() {
}
/**
* 对号码进行排序,只对最后一个号码以前的 号码进行排序
*
* @param ball
* @return
*/
private int[] sort(int[] ball) {
for (int i = 0; i < ball.length - 1; i++) {
for (int j = 0; j < ball.length - i - 2; j++) {
if (ball[j] > ball[j + 1]) {
int t = ball[j];
ball[j] = ball[j + 1];
ball[j + 1] = t;
}
}
}
return ball;
}
public static void main(String[] args) {
DoubleBall ball = new DoubleBall();
ball.displayBall();
}
}
分享到:
相关推荐
用java 轻松实现的双色球游戏程序,看你有多大的比例中奖!!
Java实现双色球开奖程序
java实现的双色球选号器
使用Java实现了双色球的简单玩法,非常适合于Java初学者的案例。
一个不错的用Java实现的双色球抽号程序,希望能给您带来好运
利用JAVA程序设计语言编写的一个简单的双色球随机数的产生.顺带小窗口的图像界面设计。
java代码实现彩票抽取随机数.双色球,代码很简单.
基于java+mysql实现双色球购买及抽奖程序控制台版本(完整源码+数据库) 功能描述: 使用面向对象的技术完成双色球彩票购买及抽奖程序,完成以下功能,双色球的游戏规则自行百度。 购买彩票功能,需输入购买几张彩票...
基于Java面向对象实现双色球购买及抽奖程序控制台版本(源码+mysql) 功能描述: 使用面向对象的技术完成双色球彩票购买及抽奖程序,完成以下功能,双色球的游戏规则自行百度。 购买彩票功能,需输入购买几张彩票,每...
java编写的一个简单的彩票中奖程序,通过控制台输入的数字和电脑生成的随机数进行比较,判断是否中奖!
实现方法分为2种: 1.采用数组保存红球和篮球数据 2.采用ArrayList保存球和集合 建议大家研究第二种写法,相比第一种。程序更加灵活可用
主要为大家详细解析了java双色球机选法程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5...
Java范例开发大全(全书源程序),目录如下: 第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境...
实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 ...
实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 ...
实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 ...