模拟双色球案例
来源:互联网 发布:逆波兰表达式算法 java 编辑:程序博客网 时间:2024/06/06 03:18
/** 模拟双色球案例 准备相关变量 1.用户选择是机选还是手选 2.接受用户选号(6红,1蓝) 3.生成系统号码(6红,1蓝) 3.比较系统号码和用户号码,记录个数 5.验证是否中奖 6.系统号码排序 7.公布结果*/import java.util.Scanner;import java.util.Arrays;import java.util.Random;public class doubleball{ public static void main(String[] args){ //定义相关的变量 int[] userRedBall = new int[6];//用户选择的红球号码 int[] sysRedBall = new int[6];//系统生成的红球号码 int userBlueBall = 0;//用户选择的篮球 int sysBlueBall = 0;//系统生成的篮球 int redCount = 0;//记录用户选择正确的红球数 int blueCount = 0;//记录用户选择正确的篮球数 int[] redBall = new int[33];//用于存储1-33的红球号码 //需要随机生成6个再1-33之间不重复的数(算法) for(int i = 0;i<redBall.length;i++){ redBall[i]=i+1; } //游戏开始,系统提示 System.out.println("双色球游戏开始,good luck!"); System.out.println("请问您是要机选还是手选号码(1:机选,2:手选)"); Scanner input = new Scanner(System.in); Random r = new Random(); boolean flag = true; while(flag){ int isAuto = input.nextInt(); switch(isAuto){ case 1: //机选 computerSelection(redBall,userRedBall);//机选红球 userBlueBall = r.nextInt(16)+1;//机选蓝球 flag =false; break; case 2: //手选 System.out.println("请选择6个红球号码(1-33):"); for(int i=0;i<userRedBall.length;i++){ userRedBall[i] = input.nextInt(); } System.out.println("请选择一个蓝球号码(1-16)"); userBlueBall = input.nextInt(); flag = false; break; default: System.out.println("请问您是要机选还是手选号码(1:机选,2:手选)"); break; } } //系统随机生成号码 //红球 computerSelection(redBall,sysRedBall); //蓝球 sysBlueBall = r.nextInt(16)+1; //统计结果: //统计红球 for(int i=0;i<userRedBall.length;i++){ for(int j=0;j<sysRedBall.length-redCount;j++){ if(userRedBall[i]==sysRedBall[j]){ int temp = sysRedBall[j]; sysRedBall[j] = sysRedBall[sysRedBall.length-1-redCount]; sysRedBall[sysRedBall.length-1-redCount] = temp; redCount++; break; } } } //统计蓝球 if(userBlueBall==sysBlueBall){ blueCount=1; } //验证是否中奖 if(blueCount==0 && redCount<=3){ System.out.println("啥都没有中,那就再接再厉吧,加油!"); }else if(blueCount==1 && redCount==3){ System.out.println("中了六等奖,5块钱"); }else if((blueCount==1 && redCount==3)||(blueCount==0 && redCount==4)){ System.out.println("中了额五等奖,10块钱"); }else if((blueCount==1 && redCount==4)||(blueCount==0 && redCount==5)){ System.out.println("中了4等奖,200块钱"); }else if(blueCount==1 && redCount==5){ System.out.println("中了三等奖,3000块钱"); }else if(blueCount==0 && redCount==6){ System.out.println("中了二等奖"); }else if(blueCount==1 && redCount==6){ System.out.println("中了一等奖,500w"); }else{ System.out.println("系统有误,中奖无效"); } //公布系统号码 System.out.println("本期中奖红球号码为:"); sort(sysRedBall); System.out.println(Arrays.toString(sysRedBall)); System.out.println("本期中奖蓝球号码为:"+sysBlueBall); //公布用户号码 System.out.println("您选择的红球号码为:"); sort(userRedBall); System.out.println(Arrays.toString(userRedBall)); System.out.println("您选择的蓝球号码为:"+userBlueBall); System.out.println("买双色球,成就你的豪车梦"); } public static void sort(int[] ball){ for(int i=0;i<ball.length-1;i++){ for(int j=0;j<ball.length-1-i;j++){ if(ball[j]>ball[j+1]){ ball[j]=ball[j]+ball[j+1]; ball[j+1]=ball[j]-ball[j+1]; ball[j]=ball[j]-ball[j+1]; } } } } public static void computerSelection(int[] redBall,int[] userRedBall){ Random r = new Random(); int index = -1; for(int i = 0;i<userRedBall.length;i++){ index = r.nextInt(redBall.length-i); userRedBall[i] = redBall[index]; int temp = redBall[index]; redBall[index] = redBall[redBall.length-1-i]; redBall[redBall.length-1-i] = temp; } }}
阅读全文
1 0
- 模拟双色球案例
- javascript 案例:模拟时钟
- GUI_模拟四则运算案例
- queue模拟小案例
- 模拟用户注册,小案例
- STL综合案例-模拟演讲比赛
- GIT模拟上线流程案例
- 案例一:网站模拟登录
- 希望能抛砖引玉:案例2模拟工具条
- QT平台上模拟鼠标事件案例
- 模拟某些网站的开关灯案例
- Android模拟手机QQ+发送短信案例
- XML模拟登陆页面的案例
- 冷备下模拟rm -rf *.dbf恢复案例
- UI进阶之模拟时钟指针案例
- Spring模拟aop静态代理案例<一>
- JavaScript模拟线程池案例:超市收银台
- js案例-1 模拟百度搜索
- 图的存储结构
- Coursera 编程题 #3 运算符重载 写一个二维数组类 Array2心得
- TCP/UDP 区别
- 【工具使用】图形化工具----Jeddict
- python 之 python3内置函数
- 模拟双色球案例
- Hadoop之YARN在单节点上运行
- vue-router嵌套路由
- 最短路径dijkstra(从s到t)
- 关于三次握手四次挥手
- struts ---核心过滤器理解---
- 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)-D:数圈圈(数位DP)
- 通过表单为数据库增添数据示例
- 面向对象--简单的静态内部类