题目:
投注号码由6个红色球号码和1个蓝色球号码组成。红色号码从1-33中选择;蓝色球号码从1-16中选择。输出正确号码,买家选择的双色球号码以及兑奖结果。
中奖说明:
中红色球个数 中蓝色球个数 奖金 6 1 1000万 6 0 500万 5 1 3000元 5 0 200元 4 1 4 0 10元 3 1 2 15元
1 1 0 1
package BicolorSphere;
import java.util.Random;
import java.util.Scanner;
public class BicolorSphere {
public static void main(String[] args) {
int[] winnum = createNumber();//用数组winnum存放正确的号码
int[] selectnum = new int[7];//用selectnum存放买家选择的号码
Scanner scan = new Scanner(System.in);
//for循环,买家输入自己选择的号码
for (int curpos = 0;curpos < selectnum.length;){
if(curpos != selectnum.length-1){
System.out.print("请输入第"+(curpos+1)+"个红球号码:");
int num = scan.nextInt();
if(num >= 1 && num <= 33){
if(!check(selectnum,num)){//检测之前是否选择过该号码,若没有则存入数组中
selectnum[curpos] = num;
curpos ++;
}else{
System.out.println("你已选择过此号码,请重新输入!");
}
}else{
System.out.println("不在红色球号码范围内,请重新输入!");
}
}else{
System.out.print("请输入蓝球号码:");
int num = scan.nextInt();
if(num >= 1 && num<=16){
selectnum[curpos] = num;
curpos ++;
}else{
System.out.println("不在蓝色球号码范围内,请重新输入!");
}
}
}
System.out.print("中奖号码为:");
for (int curpos = 0;curpos < winnum.length;curpos ++){
System.out.print(winnum[curpos]+" ");
}
System.out.println();
System.out.print("你选择的号码为:");
for (int curpos = 0;curpos < selectnum.length;curpos ++){
System.out.print(selectnum[curpos]+" ");
}
System.out.println();
//输出中奖情况
redeem(winnum,selectnum);
}
//函数createNumber用于生成正确的号码
public static int[] createNumber(){
Random random = new Random();
int[] numberarr = new int[7];
for (int curpos = 0;curpos < numberarr.length-1;){
int num = random.nextInt(33)+1;
if(!check(numberarr,num)){
numberarr[curpos] = num;
curpos ++;
}
}
numberarr[numberarr.length-1] = random.nextInt(16)+1;
return numberarr;
}
//check函数用于检验数组arr中是否存在数num,若存在则返回true,若不存在,则返回false
public static boolean check(int[] arr,int num){
for (int curpos = 0;curpos < arr.length;curpos ++){
if (arr[curpos] == num){
return true;
}
}
return false;
}
//函数redeem用于兑奖
public static void redeem(int[] winnum,int[] selectnum){
int redcount = 0,bluecount = 0;
for (int curpos1 = 0;curpos1 < winnum.length;curpos1 ++){
for (int curpos2 = 0;curpos2 < selectnum.length;curpos2 ++){
if(winnum[curpos1] == selectnum[curpos2]){
redcount ++;
}
}
}
if(selectnum[selectnum.length-1] == winnum[winnum.length-1]){
bluecount ++;
}
if(redcount == 6 && bluecount ==1){
System.out.println("恭喜你!中奖1000万!");
}else if(redcount == 5 && bluecount ==1){
System.out.println("恭喜你!中奖3000元!");
}
else if((redcount == 5 && bluecount ==0) || (redcount == 4 && bluecount == 1)){
System.out.println("恭喜你!中奖200元!");
}
else if((redcount == 4 && bluecount ==0) || (redcount == 3 && bluecount == 1)){
System.out.println("恭喜你!中奖10元!");
}
else if((redcount == 2 && bluecount ==1) || (redcount == 1 && bluecount == 1) || (redcount == 0 && bluecount == 1)){
System.out.println("恭喜你!中奖5元!");
}else{
System.out.println("感谢参与!");
}
}
}
代码结果:
请输入第1个红球号码:12
请输入第2个红球号码:13
请输入第3个红球号码:25
请输入第4个红球号码:26
请输入第5个红球号码:27
请输入第6个红球号码:5
请输入蓝球号码:5
中奖号码为:15 4 11 31 12 29 8
你选择的号码为:12 13 25 26 27 5 5
感谢参与!