双色球判定原理:
用户选择号码为1到33的红球(不可以重复),再选择号码1-16的
中奖规则:
6个红球和1个蓝球则中1000w
6个红球和0个蓝球则中500w
5个红球和1个蓝球则中3000元
5个红球和0个蓝球或者4个红球和1个蓝球或者4个红球和0个蓝球则中200元
3个红球和1个蓝球或者2个红球和1个蓝球则中10元
1个红球和1个蓝球或者0个红球和1个蓝球则中5元
整个过程分为:
1.创建随机号码
2.用户输入号码
3.判定中奖情况
创建中奖号码:
//生成中奖号码
int[]arr=new int[7];
Random r=new Random();
int[] RedRight=new int[6];
//生成红球号码
for (int i = 0; i < arr.length-1; ) {
int RedNumber=r.nextInt(33)+1;
if(contains(arr,RedNumber)){
arr[i]=RedNumber;
i++;
}
}
//生成红色正确号码数组
for (int i = 0; i < RedRight.length; i++) {
RedRight[i]=arr[i];
}
arr[arr.length-1]=r.nextInt(16)+1;
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
用户输入号码:
分为红球号码输入和蓝球号码输入
Scanner sc=new Scanner(System.in);
int[]UserIput=new int[7];
int RedCount=0;
int BlueCount=0;
for (int i = 0; i < UserIput.length;) {
//用户输入红球号码
if(i<=6)
{
System.out.println("请输入第"+(i+1)+"个红球的号码(1-33)");
int n=sc.nextInt();
if((n<=33&&n>=1)&&contains(UserIput,n)){
UserIput[i]=n;
if(!contains(RedRight,n))RedCount++;
i++;
}else if(!contains(UserIput,n)&&(n<=33&&n>=1)){
System.out.println("输入有重复,请重新输入");
}else if(contains(UserIput,n)&&(n>33||n<1)){
System.out.println("输入数据范围错误请重新输入");
}
}if(i==UserIput.length-1)
//用户输入蓝球号码
{
System.out.println("请输入蓝球的号码(1-16)");
int n=sc.nextInt();
if(n>=1&&n<=16){
UserIput[i]=n;
if(n==arr[i])BlueCount++;
i++;
}else{
System.out.println("输入范围错误,请重新输入!!!");
}
}
}
判定中奖情况:
if(RedCount==6&&BlueCount==1){
System.out.println("恭喜中奖1000万");
}else if(RedCount==6&&BlueCount==0){
System.out.println("恭喜中奖500w");
}else if(RedCount==5&&BlueCount==1){
System.out.println("恭喜中奖3000元");
}else if((RedCount==5&&BlueCount==0)||(RedCount==4&&BlueCount==1)||(RedCount==4&&BlueCount==0)){
System.out.println("恭喜中奖200元");
}else if((RedCount==3&&BlueCount==1)||(RedCount==2&&BlueCount==1)){
System.out.println("恭喜中奖10元");
}else if((RedCount==1&&BlueCount==1)||(RedCount==0&&BlueCount==1)){
System.out.println("恭喜中奖5元");
}else{
System.out.println("很遗憾,没有中奖");
}
使用的函数:查找函数
public static boolean contains(int[]arr,int n) {
for (int i = 0; i < arr.length; i++) {
if(arr[i]==n)
{
return false;
}
}
return true;
}
整体代码:
import java.util.Random;
import java.util.Scanner;
//双色球
/*
6个红球从1到33号,不可以重复与,1个蓝球从1到16可以重复
*/
public class test6 {
public static void main(String[] args) {
//生成中奖号码
int[]arr=new int[7];
Random r=new Random();
int[] RedRight=new int[6];
//生成红球号码
for (int i = 0; i < arr.length-1; ) {
int RedNumber=r.nextInt(33)+1;
if(contains(arr,RedNumber)){
arr[i]=RedNumber;
i++;
}
}
//生成红色正确号码数组
for (int i = 0; i < RedRight.length; i++) {
RedRight[i]=arr[i];
}
arr[arr.length-1]=r.nextInt(16)+1;
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
Scanner sc=new Scanner(System.in);
int[]UserIput=new int[7];
int RedCount=0;
int BlueCount=0;
for (int i = 0; i < UserIput.length;) {
//用户输入红球号码
if(i<=6)
{
System.out.println("请输入第"+(i+1)+"个红球的号码(1-33)");
int n=sc.nextInt();
if((n<=33&&n>=1)&&contains(UserIput,n)){
UserIput[i]=n;
if(!contains(RedRight,n))RedCount++;
i++;
}else if(!contains(UserIput,n)&&(n<=33&&n>=1)){
System.out.println("输入有重复,请重新输入");
}else if(contains(UserIput,n)&&(n>33||n<1)){
System.out.println("输入数据范围错误请重新输入");
}
}if(i==UserIput.length-1)
//用户输入蓝球号码
{
System.out.println("请输入蓝球的号码(1-16)");
int n=sc.nextInt();
if(n>=1&&n<=16){
UserIput[i]=n;
if(n==arr[i])BlueCount++;
i++;
}else{
System.out.println("输入范围错误,请重新输入!!!");
}
}
}
System.out.println(RedCount);
System.out.println(BlueCount);
if(RedCount==6&&BlueCount==1){
System.out.println("恭喜中奖1000万");
}else if(RedCount==6&&BlueCount==0){
System.out.println("恭喜中奖500w");
}else if(RedCount==5&&BlueCount==1){
System.out.println("恭喜中奖3000元");
}else if((RedCount==5&&BlueCount==0)||(RedCount==4&&BlueCount==1)||(RedCount==4&&BlueCount==0)){
System.out.println("恭喜中奖200元");
}else if((RedCount==3&&BlueCount==1)||(RedCount==2&&BlueCount==1)){
System.out.println("恭喜中奖10元");
}else if((RedCount==1&&BlueCount==1)||(RedCount==0&&BlueCount==1)){
System.out.println("恭喜中奖5元");
}else{
System.out.println("很遗憾,没有中奖");
}
}
//判断是否已经有这个数字
public static boolean contains(int[]arr,int n) {
for (int i = 0; i < arr.length; i++) {
if(arr[i]==n)
{
return false;
}
}
return true;
}
}