模拟彩票购票之——双色球

双色球当今时代很是流行,笔者觉得这种游戏比较简单适合于我这样初级水平的人研究,所以闲暇之余将自己思路展现给大家,不能说是分享,因为并非佳品。目的很单纯,就是扔一块硬臭砖头,希望能有幸看到玉石的纯洁光芒。对于其中的不足,欢迎读者的批评和赐教。

双色球的投注规则有很多,这里只研究单注的情形。

双色球单注下注规则如下:

双色球投注区分为红球号码区和蓝球号码区,红球号码范围为01~33,蓝球号码范围为01~16。双色球每期从33个红球中开出6个号码,从16个蓝球中开出1个号码作为中奖号码,双色球玩法即是竞猜开奖号码的6个红球号码和1个蓝球号码,顺序不限。

程序需求:

模拟1.随机产生序列,2.手工输入序列,3.能够退出,在退出前重复1和2

废话不多说直接上代码:

package javaBaseKnowledge;

import java.util.Scanner;

/**
* 双色球生成规则:红球 1-33 蓝球1-16 不放回抽取出6个红球 +1个篮球完成以下功能: 1.机选一次 2.手动选择 3.退出要求:
* 如果机选或手动输入的都要求输出的是有序的 7 16 21 22 31 33 + 11
* */
public class DoubleBall {

private static Scanner sc = new Scanner(System.in);
private static int[] array = new int[7];
private static boolean judge = true;

public static void main(String[] args) {

while (judge) {
System.out.println("***************************************");
System.out.println("请选择操作:\n1.机选一次\n2.手动选择\n3.退出");
System.out.println("***************************************");

int choice = sc.nextInt();

switch (choice) {
case 1:
machine();
show();
break;
case 2:
hand();
show();
break;
case 3:
quit();
break;
default:
System.out.println("您输入的选项不正确,请检查");
break;
}
}

}

//打印出双色球的编号

private static void show() {

System.out.print("红球: ");
for (int i = 0; i < array.length - 1; i++) {
System.out.print(array[i] + " ");
}
System.out.print("\n蓝球:" + array[array.length - 1] + "\n");
}

//退出程序

private static void quit() {

judge = false;
System.out.println("已退出");

}

//手动选号,这种方法适合狗屎运旺盛的家伙

private static void hand() {
boolean ju;
do {
System.out
.println("请输入6个红球的编号(1-33)和1个蓝球的编号(1-16)\n请使用空格将输入的每个数字隔开");
for (int i = 0; i < array.length; i++) {
array[i] = sc.nextInt();
}
bubleSort(array);
if (!(ju=isArrayCorrect(array))) {
System.out.println("您输入的数字不合法");
}
} while (!ju);

}

//机器选号,省时省力,听天由命

private static void machine() {

do {
for (int i = 0; i < array.length - 1; i++) {
array[i] = (int) (Math.random() * 33 + 1);
}
array[array.length - 1] = (int) (Math.random() * 16 + 1);
bubleSort(array);
} while (!isArrayCorrect(array));

System.out.println("您得到了以下随机编号:");

}

//传说中的冒泡排序,有木有高大上的赶脚

//要有这一步是因为彩票的编号习惯是从左到右数值依次增大

private static void bubleSort(int[] a) {

int temp = a[0];
for (int i = a.length - 3; i >= 0; i--) {
for (int j = 0; j <= i; j++) {
if (a[j] > a[j + 1]) {
temp = a[j + 1];
a[j + 1] = a[j];
a[j] = temp;
}
}
}
}

//判断给定数组是否满足数字编号不重复、范围合法等要求

private static boolean isArrayCorrect(int[] a) {

for (int i = 0; i < a.length - 1; i++) {
for (int j = 0; j < i; j++) {
if (array[j] == array[j + 1] || a[j] > 33 || a[j] < 1
|| a[a.length - 1] < 1 || a[a.length - 1] > 16) {
return false;
}
}
}
return true;
}

}

///////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////

执行结果:

***************************************
请选择操作:
1.机选一次
2.手动选择
3.退出
***************************************
2
请输入6个红球的编号(1-33)和1个蓝球的编号(1-16)
请使用空格将输入的每个数字隔开
55 4 2 1 6 32 14
您输入的数字不合法
请输入6个红球的编号(1-33)和1个蓝球的编号(1-16)
请使用空格将输入的每个数字隔开
1

2 9 6 5 4 14
红球: 1 2 4 5 6 9
蓝球:14
***************************************
请选择操作:
1.机选一次
2.手动选择
3.退出
***************************************
1
您得到了以下随机编号:
红球: 12 15 16 23 25 32
蓝球:11
***************************************
请选择操作:
1.机选一次
2.手动选择
3.退出
***************************************
3
已退出

///////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////

第一次发表博文,希望大家支持

时间: 2024-10-14 08:41:19

模拟彩票购票之——双色球的相关文章

浅谈模拟彩票代码,html,javascript

今天简单介绍一下用html,javascript来模拟双色球彩票选择器. 双色球彩票规则:由6个红球和1个蓝球组成,其中6个红球是从1-33中随机选出的不重复的6个数,从小到大一次排列:蓝球是1-16随机生成的一个数 1.创建红球数组,随机生成1-33的6个不重复的数字,并放入红球数组中,2.将数组中6个数字从小到大进行排列 3.将数组中的数字依次放入6个红球中,4.最后将随机生成的1-16中的一个数字放入最后的蓝球中.效果如图所示: 首先用css进行简单的样式设置 用javascript来模拟

JS 模拟彩票

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 <style type="text/css"> 7 p{ 8 margin: 0; 9 padding: 0; 10 } 11 </style> 12 </head> 13 <body>

基于Java SE的模拟双色球彩票系统

1.双色球规则: ①双色球分为红球和蓝球,红球选择的范围为1-33,而且红球选择6个数字:蓝球选择的范围为1-16,而且只能选择1个数字. ②选择方式为随机选择号码和手动输入选择号码. ③生成号码的顺序是由小到大. 2.功能描述: 通过Java SE所学知识模拟彩票系统,首先系统能够让用户选择随机选择和手动选择.如果选择的是随机选择,则提示需要购买的注数:如果是手动选择,则让用户首先输入输入红球数字,然后输入蓝球数字.用户选择或者输入完毕,则对比号码所匹配的奖次,并且把中奖号码都要显示出来. 3

用循环与数组模拟双色球彩票中奖

String ji="机选"; String zi="自选"; System.out.println("请问机选还是自选?"); String my=wx.next(); int []a=new int[7];//用户买的号码记录的数组 //自选时的用户彩票 if(my.equals(zi)){ for(int i=0;i<a.length;i++){ //蓝球的输入 if(i==6){ System.out.println("请

从500彩票网站下载历史数据

#从500彩票网站下载双色球历史数据,网页另存为01.txt data = [] file = open('01.txt') for line in file: line = line.lstrip() line = line.strip('\n') line = line.split(' ')[0] if len(line)==19 or len(line)==20 or len(line)==21: data.append(line) newFile = open('彩票数据.txt','w

java-7311练习(下)

java练习,仅供参考! 欢迎同学们交流讨论. JDK 1.8 API帮助文档 JDK 1.6 API中文文档 第一次小组作业:模拟双色球彩票 游戏规则: ? 双色球为红球和蓝球: ? 用户从1-33中自选6个数字(不能重复)代表红球:从1-16中自选1个数字代表蓝球: ? 上图为中奖规则,如一等奖为中6个红球及蓝球,二等奖为仅中6个红球-- ? 请自拟六个奖项对应的奖品. package GroupFirst; import java.util.Scanner;  /**  * 第一次小组作业

淘宝技术发展

转载 http://blog.csdn.net/kobejayandy/article/details/8685271 目录 一.引言 二.个人网站 三.Oracle/支付宝/旺旺 四.淘宝技术发展(Java时代:脱胎换骨) 五.淘宝技术发展(Java时代:坚若磐石) 六.淘宝技术发展(Java时代:创造技术-TFS) 七.淘宝技术发展(分布式时代:服务化) 作者:赵超 一.引言 光棍节的狂欢 “时间到,开抢!”坐在电脑前早已等待多时的小美一看时间已到 2011 年 11 月 11 日零时,便迫

android源码大放送(实战开发必备),免费安卓demo源码,例子大全文件详细列表

免费安卓demo源码,例子大全文件详细列表 本列表源码永久免费下载地址:http://www.jiandaima.com/blog/android-demo 卷 yunpan 的文件夹 PATH 列表 卷序列号为 0000-73EC E:. │ jiandaima.com文件列表生成.bat │ 例子大全说明.txt │ 本例子永久更新地址~.url │ 目录列表2016.03.10更新.txt │ ├─前台界面 │ ├─3D标签云卡片热门 │ │ Android TagCloudView云标签

if条件语句练习题

习题一: 做一个算缘分的小游戏:输入男方姓名,女方姓名,输出缘分指数,给出建议. static void Main(string[] args) { //做一个算缘分的小游戏: //输入男方姓名,女方姓名,输出缘分指数,给出建议. Console.WriteLine("男方姓名:"); string nan = Console.ReadLine(); Console.WriteLine("女方姓名:"); string nv = Console.ReadLine()