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编程语言来实现一个双色球开奖程序。双色球是中国流行的一种彩票玩法,其规则包括6个红色球和1个蓝色球,红色球的号码范围是从1到33,蓝色球的号码范围是从1到16。以下是对这个...
java实现的双色球选号器
根据提供的信息,我们可以总结出以下有关“Java实现双色球代码”的知识点: ### 1. 双色球基本概念 双色球是中国福利彩票的一种,它由红球和蓝球组成。红球从1到33中随机选择6个不重复的数字,蓝球则从1到16中选择...
一个不错的用Java实现的双色球抽号程序,希望能给您带来好运
- for循环是Java中控制程序流程的重要工具。在这个项目中,可能会使用for循环来遍历1到33的数字,为红色球生成随机号码。对于蓝色球,循环范围则会是1到16。 3. **随机数生成**: - Java的 `nextInt(int bound)` ...
综上所述,实现随机双色球生成器的Java程序涉及到的知识点包括:使用`Random`类生成随机数、理解整数范围、创建批处理文件在Windows环境下运行程序,以及对Java多线程的基本认识。这个简单的程序可以作为一个起点,...
利用JAVA程序设计语言编写的一个简单的双色球随机数的产生.顺带小窗口的图像界面设计。
开发者分享这个项目,目的是为了让其他学习者能够从中获取灵感,了解如何用Java实现一个实际的应用场景,例如游戏或彩票系统的开发。 【标签解析】:“双色球”标签明确了项目的核心内容,即与双色球彩票游戏相关的...
java代码实现彩票抽取随机数.双色球,代码很简单.
在双色球程序中,我们可能需要显示已生成的彩票号码。 ```java System.out.println("您的双色球号码为:"); System.out.println("红球: " + redBall1 + " ..."); System.out.println("蓝球: " + blueBall); ```...
基于Java面向对象实现双色球购买及抽奖程序控制台版本(源码+mysql) 功能描述: 使用面向对象的技术完成双色球彩票购买及抽奖程序,完成以下功能,双色球的游戏规则自行百度。 购买彩票功能,需输入购买几张彩票,每...
这个程序可能通过生成所有可能的红球组合,并对每个组合随机选择一个蓝球,来模拟双色球的所有可能结果。然后,它可能会统计并输出特定号码组合出现的次数,以此来近似计算概率。 为了实现这个功能,开发者可能使用...
这可能意味着程序由两个源代码文件组成,其中一个是主要的彩票逻辑,另一个可能是辅助类或实现其他功能的类。 7. 编译与运行:在Java环境中,开发者需要先使用`javac`命令编译`.java`源代码文件为`.class`字节码...
- **Java语言基础**:双色球机选程序是用Java语言编写的,因此需要熟悉Java的基本语法、数据类型、控制结构、类和对象等。 - **随机数生成**:Java的`java.util.Random`类提供了生成随机数的功能,如`nextInt()`...
【双色球模拟开奖系统】是一个基于Java编程语言开发的应用程序,旨在为用户提供一个互动的、仿真的彩票开奖体验。该系统特别针对中国流行的彩票游戏——双色球进行设计,让用户能够在自己的计算机上进行模拟选号、...
基于java+mysql实现双色球购买及抽奖程序控制台版本(完整源码+数据库) 功能描述: 使用面向对象的技术完成双色球彩票购买及抽奖程序,完成以下功能,双色球的游戏规则自行百度。 购买彩票功能,需输入购买几张彩票...
Java实现爬取往期所有双色球开奖结果功能示例 本文主要介绍了使用Java实现爬取往期所有双色球开奖结果的功能,涉及Java网页抓取、正则替换、文件读写等相关操作技巧。 首先,需要了解Java网页抓取的基本原理,即使...
在本项目中,我们主要关注的是使用Java编程语言实现双色球彩票的模拟系统。双色球是中国流行的一种彩票玩法,其规则包括6个红色球(1-33之间)和1个蓝色球(1-16之间)。下面将详细讨论涉及到的知识点。 1. **类的...
而“游戏”标签则意味着这个程序具有娱乐性,可能是为了教学目的,帮助初学者了解如何用Java实现游戏逻辑,或者是为Java爱好者提供一个有趣的实践项目。 根据压缩包子文件的文件名称列表无法直接推断出具体的内容,...