实现步骤:
1、系统生成一个篮球和6个红球,并存储起来
2、接收用户选号,一个篮球和六个红球
3、验证系统号码与用户号码是否匹配(是否中奖)
4、公布本期中奖号码
import java.util.Random;
import java.util.Scanner;
/**
应用案例之一:模拟双色球彩票程序
实现步骤:
1、系统生成一个篮球和6个红球,并存储起来
2、接收用户选号,一个篮球和六个红球
3、验证系统号码与用户号码是否匹配(是否中奖)
4、公布本期中奖号码
*/
class DoubleBall{
public static void main(String[] args) {
int sysBlueBallNum;//系统生成的篮球
int[]sysRedBallNum=new int[6];//系统生成的红球
int userBlueBallNum;//用户选择的篮球
int[]userRedBallNum=new int[6];//用户选择的红球
int blueBall=0;//判断篮球号码是否正确
int redBallCount=0;//记录红球正确的数量
Random r=new Random();//创建生成随机的工具类
Scanner input=new Scanner(System.in);
int[] redNum={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,29,30,31,32,33};
sysBlueBallNum=r.nextInt(16)+1;//产生系统的篮球号码(16代表0-15,系统随机从16个中产生1个球)
//随机生成红球号码
for(int i=0;i<sysRedBallNum.length;i++){
while(true){ //while控制不断循环
int index = r.nextInt(33); //随机33个数的下标
//如果随机数的下标不为0
if(redNum[index]!=0){
sysRedBallNum[i]=redNum[index];//就把下标的那个数赋给i位置
redNum[index]=0;//
break;
}
}
}
System.out.println("双色球彩票选号开始……祝你好运!");
System.out.println("请选择篮球号码(16选1):");
userBlueBallNum = input.nextInt();
System.out.println("请选择红球号码(33选6):");
for(int i=0;i<userRedBallNum.length;i++){
userRedBallNum[i] = input.nextInt();
}
//验证篮球和红球的正确个数
//----验证篮球
if(userBlueBallNum==sysBlueBallNum){
blueBall=1;
}
//----验证红球
for( int i=0;i<userRedBallNum.length;i++){
for(int j=0;j<sysRedBallNum.length;j++){
if(userRedBallNum[i]==sysRedBallNum[j]){
redBallCount++;
break;
}
}
}
//判断是否中奖
if(blueBall==1 && redBallCount==6){
System.out.println("恭喜你,中了一等奖500万!");
}else if(redBallCount==6){
System.out.println("恭喜你,中了二等奖!");
}else if (blueBall==1 && redBallCount==5){
System.out.println("恭喜你,中了三等奖3000");
}else if (redBallCount==5 ||(redBallCount==4 && blueBall==1)){
System.out.println("恭喜你,中了四等奖200");
}else if(redBallCount==4 ||(redBallCount==3 && blueBall==1)){
System.out.println("恭喜你,中了五等奖10");
}else if(blueBall==1){
System.out.println("恭喜你,中了六等奖5");
}else{
System.out.println("革命尚未成功,同志仍需努力……");
}
//公布本期中奖号码
int temp;
for(int i=0;i<sysRedBallNum.length-1;i++){
for(int j=0;j<sysRedBallNum.length-1-i;j++){
if(sysRedBallNum[j]>sysRedBallNum[j+1]){
temp=sysRedBallNum[j];
sysRedBallNum[j]=sysRedBallNum[j+1];
sysRedBallNum[j+1]=temp;
}
}
}
//输出
System.out.println("本期的中奖号码为:");
System.out.print("红球:");
for(int i=0;i<sysRedBallNum.length;i++){
System.out.print(sysRedBallNum[i]+" ");
}
System.out.println();
System.out.print("篮球:"+sysBlueBallNum);
}
}
|
|