您的位置:首页 > 编程语言 > Java开发

双色球模拟实验

2016-05-15 17:05 465 查看
题目:双色球模拟实验

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

          选对6个红球号码,选对蓝球号码                                             一等奖;

          选对6个红球号码,选错蓝球号码                                             二等奖;

          选对5个红球号码,选对蓝球号码                                             三等奖;

          选对5个红球号码,选错蓝球号码或者选对4个红球号码,选对蓝球号码             四等奖

          选对4个红球号码,选错蓝球号码或者选对3个红球号码,选对蓝球号码             五等奖

          选对3个红球号码,选错蓝球号码或者选对2个红球号码,选对蓝球号码             六等奖

  

思路分析;

         1.如何产生蓝球和红球号码

         2.如何接受用户选号

         3.如何验证是否中奖

         4.公布本期中奖号码

说明:重要的是要明白需要几个版块,生成号码,接收号码,判断中奖情况,输出中奖号码等,其中随机生成号码是重点,可以创建一个生成随机数的工具Random r = new Random();
         但是需要注意的是随机数的范围,并且生成的随机数不能有重复的。可以先把这33个数放到一个数组里,随机生成这些数的下标,把已经被选中的数的下标做标记。

源代码:/**双色球模拟实验
* 1. 随机生成系统号码
* 2. 用户输入自己的双色球选号
* 3.机器判断中奖的情况
* 4.公布结果是否中奖,并输出中奖号码
*/
package shuangseqiu;
import java.util.Scanner;
import java.util.Random;
public class shuangseqiu {
public static void main(String args[]){
int[] systemRedball = new int[6]; //用于存放系统随机生成的红色球
int systemBlueball = 0; //用于存放系统随机生成的蓝色球;
int[] userRedball = new int[6]; //用于存放用户猜的红色球
int userBlueball = 0; //用于存放用户猜的蓝色球
int Redcount=0; //用于判断红球和蓝球相同的个数
int Bluecount=0;

//---创建一个生成随机数的工具---
Random r = new Random(); //生成随机数的工具
int[] array={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,2930,31,32,33};
int index = 0; //作为一个下标值;
for(int i=0;i<systemRedball.length;i++){
//不知道要循环的次数
while(true){
//每次生成一个下标值
index = r.nextInt(33);
if(array[index]!=-1){ //-1表示当前号已经被取过了
systemRedball[i] = array[index];
array[index] = -1; //对这个值赋值-1做标记,防止再被取出来
break;
}
}
}
systemBlueball = r.nextInt(16)+1;

//---接受用户的选号---
Scanner input = new Scanner(System.in);
System.out.println("请输入6个不重复的红球号码(1-33):");
for(int i =0;i<userRedball.length;i++)
userRedball[i] = input.nextInt();
System.out.println("请输入1个蓝球号码(1-16):");
userBlueball = input.nextInt();

//---判断中奖情况---
for(int i =0 ;i<systemRedball.length;i++){
for(int j=0;j<userRedball.length;j++){
if(systemRedball[i]==userRedball[j]){
Redcount+=1;
}
}
}
if(systemBlueball==userBlueball){
Bluecount+=1;
}
if(Redcount==6&&Bluecount==1){
System.out.println("恭喜你,中了一等奖!");
}else if(Redcount==6&&Bluecount==0){
System.out.println("恭喜你,中了二等奖!");
}else if(Redcount==5&&Bluecount==1){
System.out.println("恭喜你,中了三等奖!");
}else if((Redcount==5&&Bluecount==0)||(Redcount==4&&Bluecount==1)){
System.out.println("恭喜你,中了四等奖!");
}else if((Redcount==4&&Bluecount==0)||Redcount==3&&Bluecount==1){
System.out.println("恭喜你,中了五等奖!");
}else if(Bluecount==11){
System.out.println("恭喜你,中了六等奖!");
}else{
System.out.println("很遗憾,这次没有中奖,再接再厉!");
}

//---公布结果---
//对结果先做一排序
int temp=0;
for(int i=0;i<systemRedball.length;i++){
for(int j=0;j<systemRedball.length-i-1;i++){
if(systemRedball[j]>systemRedball[j+1]){
temp = systemRedball[j];
systemRedball[j] = systemRedball[j+1];
systemRedball[j+1] = temp;
}
}
}
System.out.println("红球的中奖号码为:");
for(int i=0;i<systemRedball.length;i++){
System.out.print(systemRedball[i]+" ");
}
System.out.println();
System.out.println("蓝球的中奖号码为:");
System.out.print(systemBlueball);
}
}
这几天变懒了,一直都没有更题,也没有学习新内容,不能这样了,要坚持下去,加油!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息