双色球案例分析及中奖要求
1.用户选择机选还是手选
2.如何产生蓝球和红球
3.如何生成系统号码
4.如何接受用户的选号
5.比较系统号码和用户号码,记录中奖个数
6.如何验证是否中奖
7.排序
8.公布中奖号码
代码实现
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class Test {
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("请问你是要机选号码还是手选号码(1:机选 , 2:手选)");
Scanner sc = new Scanner(System.in);
Random r = new Random();//生成随机数
boolean falg = true ;
while (falg){
int chioce = sc.nextInt() ;
switch (chioce){
case 1:
//机选
computer(redBall,userRedBall);//机选红球
userBlueball = r.nextInt(16)+1 ;//机选蓝球
falg = false ;
break;
case 2:
//手选
System.out.println("请选择6个红球号码(1-33):");
for(int i=0 ;i < userRedBall.length; i++) {
userRedBall[i]=sc.nextInt();
}
System.out.println("请选择1个蓝球号码(1-16)");
userBlueball = sc.nextInt();
falg = false ;
break;
default:
System.out.println("请问你是要机选号码还是手选号码(1:机选 , 2:手选)");
}
}
//系统随机生成号码
//红球
computer(redBall,sysRedBall);
//蓝球
sysBlueball = r.nextInt(16)+1 ;
//统计结果
//红球
for (int i = 0 ;i < userRedBall.length ; i++){
for (int j = 0 ; j < sysRedBall.length ; j++){
if (sysRedBall[i] == userRedBall[i]){
redCount++ ;
break;
}
}
}
//蓝球
if(userBlueball == sysBlueball){
blueCount++ ;
}
//验证是否中奖
if((blueCount == 1 && redCount == 2) || (blueCount == 1 && redCount == 1) || blueCount == 1){
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("中了四等奖,200块钱");
}else if(blueCount == 1 && redCount == 5){
System.out.println("中了三等奖,3000块钱");
}else if(blueCount == 0 && redCount == 6){
System.out.println("中了二等奖,150w!");
}else if(blueCount == 1 && redCount == 6){
System.out.println("中了一等奖,500w!");
}else{
System.out.println("很遗憾.未中奖");
}
//输出中奖号码
sort(sysRedBall);
System.out.println("本期中奖号码为:红球"+ Arrays.toString(sysRedBall)+"\t"+"蓝球"+sysBlueball);
//输出用户号码
sort(userRedBall);
System.out.println("用户选择的号码为:红球"+ Arrays.toString(userRedBall)+"\t"+"蓝球"+userBlueball);
}
//排序
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]){
int temp = ball[j] ;
ball[j] = ball[j+1] ;
ball[j+1] = temp ;
}
}
}
}
//用于在指定数列中,随机生成多个不重复的数
public static void computer(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 ;
}
}
}
运行结果

版权声明:本文为zy15193118020原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。