java编写一个彩票开奖的模拟程序.游戏共有两种玩法,一种是21选5,即玩家输入5个1到21内的不重复的数。另外一种玩法是6+1玩法,即要求玩家输入7个整数,代表所购买的彩票号码,最后一个是特码。

具体代码如下:

package p3;import java.io.*;
import java.util.Random;
import java.util.StringTokenizer;
public class Lottery
{public static void main(String[] args) {// TODO Auto-generated method stubint playtimes=0;try {if(args.length==1)playtimes=Integer.parseInt(args[0]);else playtimes=1;} catch (NumberFormatException e) {// TODO: handle exceptionSystem.out.println(e);}while(playtimes>0){int choice=init();switch(choice){case 1:int [] numbers_1=new int[5];input_1(numbers_1);check_1(numbers_1);break;case 2:int [] numbers_2=new int[7];input_2(numbers_2);check_2(numbers_2);}playtimes--;}}static int init(){boolean InputLoopflag=true;int n=0;System.out.println("请按数字键1或2选择一种玩法:21选5,或者6+1");InputStreamReader ir;BufferedReader in;String s=new String();try {ir=new InputStreamReader(System.in);in=new BufferedReader(ir);while(InputLoopflag){s=in.readLine();try {n=Integer.parseInt(s);if(n!=1&&n!=2)  {System.out.println("输入错误!请重试:");continue;}InputLoopflag=false;} catch (NumberFormatException e) {// TODO: handle exceptionSystem.out.println("非数字!请重试:");continue;}}} catch (IOException e) {// TODO: handle exceptionSystem.out.println(e);}return n;}static void input_1(int [] numbers_1){System.out.println("请输入"+numbers_1.length+"个数(这"+numbers_1.length+"个数必须互不相同,且在1-21之间):");boolean InputLoopflag=true;StringTokenizer st;InputStreamReader ir;BufferedReader in;String s=new String();try{ir=new InputStreamReader(System.in);in=new BufferedReader(ir);L1:while(InputLoopflag){s=in.readLine();st=new StringTokenizer(s);int count=st.countTokens();if(count!=numbers_1.length){System.out.println("只能输"+numbers_1.length+"个!请重试:");continue;}try {for (int i = 0; i < numbers_1.length; i++) {numbers_1[i]=Integer.parseInt(st.nextToken());for (int j = 0; j < i; j++) if(numbers_1[i]==numbers_1[j]){System.out.println(numbers_1.length+"个数必须互不相同!请重试:");continue L1;}}for (int i = 0; i < numbers_1.length; i++) if(numbers_1[i]<1||numbers_1[i]>21){System.out.println(numbers_1.length+"个数必须在1-21之间!请重试");continue L1;}} catch (NumberFormatException e) {// TODO: handle exceptionSystem.out.println("非数字!请重试:");continue;}InputLoopflag=false;}} catch (IOException e) {// TODO: handle exceptionSystem.out.println(e);}}static void input_2(int [] numbers_2){System.out.println("请连续输入"+numbers_2.length+"个位数(代表购买彩票的号码,最后一位为特等号):");boolean b=true;InputStreamReader ir;BufferedReader in;String s=new String();try {ir=new InputStreamReader(System.in);in=new BufferedReader(ir);L2:while(b){s=in.readLine();if(s.length()!=numbers_2.length){System.out.println("只能输"+numbers_2.length+"位!请重试:");continue;}for (int i = 0; i < numbers_2.length; i++) numbers_2[i]=s.charAt(i)-48;for (int i = 0; i < numbers_2.length; i++)if(numbers_2[i]<0||numbers_2[i]>9){System.out.println("只能输入数字!请重试:");continue L2;}b=false;}} catch (IOException e) {// TODO: handle exceptionSystem.out.println(e);}}static void check_1(int [] numbers){System.out.println("\n21选5的规则是:\n一等奖:5个号码相同;\n二等奖:四个号码相同;\n三等奖:三个号码相同。\n");int [] award=new int[5];Random ran=new Random();L3:for (int i = 0; i < award.length; i++) {award[i]=Math.abs(ran.nextInt())%21+1;for (int j = 0; j <i; j++) if(award[j]==award[i]){i--;continue L3;}}int same=0;L4:for (int i = 0; i <numbers.length; i++) for(int j=0;j<award.length;j++)if(numbers[i]==award[j]){same++;continue L4;}switch(same){case 5:System.out.println("恭喜你!你中了一等奖500000元!");break;case 4:System.out.println("恭喜你!你中了二等奖4000");break;case 3:System.out.println("恭喜你!你中了三等奖3000");break;default:System.out.println("很遗憾,你没有中奖,祝你下次好运.");}System.out.println("随机产生的号码是:");for (int i = 0; i < award.length;i++)System.out.print(award[i]+" ");System.out.print("\n你选的号码是      :");for (int i = 0; i < numbers.length; i++)System.out.print(numbers[i]+"  ");System.out.println("\n");          }static void check_2(int [] numbers){System.out.println("\n6+1的规则是:");System.out.println("特等奖:6+1位数都相同;\n"+"一等奖:6位数都相同;\n"+"二等奖:连续6位数相同;\n"+"三等奖:连续4位数相同;\n"+"四等奖:连续3位数相同.\n");int [] award=new int[7];int i;Random ran=new Random();for (i= 0; i < award.length; i++) award[i]=Math.abs(ran.nextInt())%10;for(i=0;i<award.length-1;i++)if(award[i]!=numbers[i]) break;if(i==6){if(award[i]==numbers[i])System.out.println("恭喜你!你中了特等奖,奖金5000000!!!!");else System.out.println("恭喜你!你中了一等奖,奖金500000!!!");System.out.print("随机产生的号码是:");for (i= 0; i< award.length; i++)System.out.print(award[i]);System.out.print("\n 你选的号码是:");for (i = 0; i <numbers.length; i++)System.out.print(numbers[i]);return;}int same1=0,same2=0;for (i = 0;  i< award.length-1; i++) {if(award[i]==numbers[i])same1++;else{if(same1>same2)same2=same1;same1=0;}}int same=same1>same2?same1:same2;switch(same){case 5:System.out.println("恭喜你!你中了二等奖50000元!");break;case 4:System.out.println("恭喜你!你中了三等奖5000");break;case 3:System.out.println("恭喜你!你中了三等奖500");break;default:System.out.println("很遗憾,你没有中奖,祝你下次好运.");}System.out.println("随机产生的中奖号码是:");for (i = 0; i < award.length; i++) System.out.print(award[i]);System.out.print("\n你选的号码是          :");for (i = 0; i < award.length; i++) System.out.print(numbers[i]);System.out.println("\n");}}

运行截图:

java编写一个彩票开奖的模拟程序.游戏共有两种玩法,一种是21选5,即玩家输入5个1到21内的不重复的数。另外一种玩法是6+1玩法,即要求玩家输入7个整数,代表所购买的彩票号码,最后一个是特码。相关推荐

  1. 彩票开奖结果查询接口介绍

    彩票(lottery ticket)是指运用在博彩中以筹集资金为目的发行的,印有号码图形或文字,由购买人自愿按一定规则购买并确定是否获取奖励的凭证.了解了这个定义之后,彩票开奖结果查询就很好理解了. ...

  2. 前端 彩票开奖走势图的实现

    彩票开奖走势图的实现 页面结构 js 部分 效果图 做的是移动端的VUE + Vant.走势图每一条线都是一个canvas实现的 页面结构 部分参数我用"***"打个码,这里tbo ...

  3. 基于C语言的彩票开奖小程序(附源码)_☆*往事随風*☆的博客

    简易彩票开奖系统 一.基本要求: 要能够实现随机产生六位处于1-33之间的彩票号码,并且可以与用户输入的号码进行校对,最终判断用户的号码可以获得多少奖金. 二.基本原理: 利用随机数函数和数组来分别产 ...

  4. 彩票控接口全国彩票开奖数据接口API中心博易爱开彩网API接口集成代码调用对接教程

    在做一些游戏开发的时候,经常要用到一些彩票开奖的数据做为开奖结果,自己到网上去抓,经常没多久对方网站改版了,又得修改代码,例子是从一专门做数据采集的接口去调用,希望对您有用.接口返回各种格式有json ...

  5. Cocos2d-x 3.2 大富翁游戏项目开发-第二十四部分 彩票开奖

    每隔N个回合,彩票开奖一次,每期开奖奖金固定5万,暂不累积.摇奖效果一般,以后考虑用物理引擎实现 1.定义彩票开奖类 bool LotteryPublish::init() {addItemSprit ...

  6. 高频彩票开奖api高频彩票最新开奖查询XML格式

    高频彩票开奖api调用代码返回示例,查询高频彩种实时开奖结果. 接口名称:高频彩票开奖api 接口平台:API接口 接口地址:http://api.kxmt.net 支持格式:json/xml 请求方 ...

  7. Java实现彩票开奖系统

    目录 系统描述 代码解析 源码 系统描述 1.如图所示,该系统分为三个选项:开始选号.现在开奖和退出.首先进入该系统输入1则开始选号,选号要求不能超过3位数,如果超过3位数则提示输入有误,请重新输入. ...

  8. 微信公众号开发--双色球彩票开奖结果(Java版)

    可扫描下方二维码关注 你我杂志刊 或微信搜索公众号 你我杂志刊 然而请求这个接口似乎有点慢了.在PC端的浏览器请求也并不是很快! 这次主要使用了免费的 开彩API http://www.opencai ...

  9. Android端的彩票开奖查询系统

    实现如下 假装插入了图片 初版历时半个多月 基础功能 开奖结果查询 近期开奖查询 历史开奖查询(最多五十期) 关注彩种 一些简单的趋势分析 号码预测(号码预测做的比较简单,直接算出每个号码的多期平均值 ...

最新文章

  1. 利用Linux或者Windows操作系统做路由器进行网络互连
  2. LeetCode 36有效的数独37解数独(八皇后问题)
  3. mysql error handler_MySql错误处理(二) - Condition Handle
  4. zooland 新开源的RPC项目,希望大家在开发的微服务的时候多一种选择,让微服务开发简单,并且容易上手。...
  5. Java加密与解密的艺术~DES实现
  6. 用Visual C++实现远程线程嵌入技术
  7. 移动端点击拉起输入_耐用的筛分式移动破碎站
  8. Python 列表下标操作
  9. 初学Jmeter的摘抄学习总结----------基础知识篇
  10. 论文撰写-LaTex 教程+模板
  11. 遗传算法解决车辆路径问题
  12. 无线路灯项目——SIM900A调试
  13. 系统集成项目管理工程师(中级)考试心得经验
  14. 亲身经历从软通外包到华为OD,两者有什么区别?
  15. “诗词吾爱”第38期擂台赛《伤春、惜春》获胜作品欣赏【转载】
  16. 随笔二——班主任工作阶段总结
  17. wps将批量数字转换成条形码_wps批量形成条码
  18. 微信提现显示服务器异常,微信零钱提现为什么显示提示交易异常 解决办法是什么...
  19. 猫耳FM导出音频转换为音频格式(m4a/mp3)
  20. WiFi模块吞吐量测试

热门文章

  1. Python PIL支持的图像文件格式
  2. 如何选择正确的控制系统?PLC和DCS各有不同
  3. 移动磁盘此卷不包含可识别的文件系统要怎么找到数据
  4. 微信公众平台开发(四)——微信支付
  5. 《Java从入门到放弃》JavaSE入门篇:面向对象语法二(入门版)
  6. MySQL_PHP学习笔记_2015_0614_PHP传参总结_URL传参_表单传参
  7. navicat 备份 mysql 报错 1548 cannot load mysql.proc
  8. [SCM]源码管理 - SVN Server
  9. A disk read error occurred Press Ctrl+Alt+del to restart
  10. git stash后怎么恢复_苹果换卡后怎么恢复通讯录?两种方法帮你解决