题目
实验研究目标:
1.实现双色球号码的自动抽取。
2.通过双色球的号码与用户号码进行对比,判断中奖金额。
双色球中奖条件和奖金表如下图所示:
分析
一、随机抽取双色球
- 将双色球的数字放进数组arr[ ]中,数组长度7,红球在前,蓝球在后,蓝球为数组最后一个。
- 随机抽取红色球,要注意的一点是,每个球的号码都是唯一,抽取之后就无法再抽取.
- 所以在写随机抽取红球之前,要先判断是否数字重合。
代码如下:
public static boolean contains(int []arr,int Number){
for (int i = 0; i < 6; i++) {
if(arr[i]==Number){
return true;
}
}
return false;
}
- 开始抽取红球,运用random函数,随机在33个号码中抽取一个数字。
int []arr = new int[7];
//随机抽取红球数字
Random r = new Random();
for (int i = 0; i < 6; ) {
int redNumber = r.nextInt(33)+1;
boolean flag = contains(arr,redNumber);
if(!flag){
arr[i] = redNumber;
i++;
}
- 现在开始随机抽取蓝球
//随机抽取蓝球
int blueNumber = r.nextInt(16)+1;
arr[arr.length-1] = blueNumber;
}
return arr;
二、用户抽取双色球
- 输入红球号码
注意事项:
红球号码是1-33,不能超过,不能重复
int []arr = new int[7];
Scanner scan = new Scanner(System.in);
for (int i = 0; i < 6; ) {
//写入红球数字
System.out.println("请输入第"+(i+1)+"个红球数字");
int redNumber = scan.nextInt();
if(redNumber>=1&&redNumber<=33){
boolean flag = contains(arr,redNumber);
if(!flag){
//如果不存在
arr[i] = redNumber;
i++;
}else{
System.out.println("该数字重复,请重新输入红球数字");
}
}else{
System.out.println("当前红球数字超出范围");
}
}
2.开始写入蓝球(只需注意不要超过1-16)
System.out.println("请输入蓝球数字");
int blueNumber = scan.nextInt();
if(blueNumber>=1&&blueNumber<=16){
arr[arr.length-1] = blueNumber;
}else{
System.out.println("当前蓝球数字超出范围");
}
3.总代码:
public static int [] userNumber(){
int []arr = new int[7];
Scanner scan = new Scanner(System.in);
for (int i = 0; i < 6; ) {
//写入红球数字
System.out.println("请输入第"+(i+1)+"个红球数字");
int redNumber = scan.nextInt();
if(redNumber>=1&&redNumber<=33){
boolean flag = contains(arr,redNumber);
if(!flag){
//如果不存在
arr[i] = redNumber;
i++;
}else{
System.out.println("该数字重复,请重新输入红球数字");
}
}else{
System.out.println("当前红球数字超出范围");
}
}
System.out.println("请输入蓝球数字");
int blueNumber = scan.nextInt();
if(blueNumber>=1&&blueNumber<=16){
arr[arr.length-1] = blueNumber;
}else{
System.out.println("当前蓝球数字超出范围");
}
return arr;
}
三、判断是否中奖
- 根据红球和蓝球的个数来判断中奖金额
- 先定义两个变量: redcount,bluecount
- 判断红球个数(将两个数组的值进行比较,若相等,则个数加一)
for (int i = 0; i < userInputNumber.length-1; i++) {
int redNumber = userInputNumber[i];
for (int i1 = 0; i1 < arr.length-1; i1++) {
if(arr[i1]==redNumber){
redcount++;
break;
}
}
}
判断蓝球个数
//判断蓝球
int bludNumber = userInputNumber[userInputNumber.length-1];
if(bludNumber == arr[arr.length-1]){
bluecount++;
}
显示中奖
//恭喜中奖
if(redcount == 6&&bluecount==1){
System.out.println("恭喜你中奖1000万");
}
else if(redcount == 6&&bluecount==0){
System.out.println("恭喜你中奖500万");
}
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 == 3&&bluecount==0)||(redcount == 2&&bluecount==1)||(redcount == 2&&bluecount==0 )||(redcount ==1&&bluecount==1)||(redcount == 0&&bluecount==1)){
System.out.println("恭喜你中奖5元");
}
else {
System.out.println("谢谢惠顾");
}
四、总代码
import java.util.Random;
import java.util.Scanner;
public class shuangSEqiu {
public static void main(String[] args) {
int []arr = createNumber();
System.out.println("=====本次中奖号码=====");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
//用户输入
int []userInputNumber = userNumber();
//判断用户的中奖情况
int redcount = 0;
int bluecount = 0;
//判断红球
for (int i = 0; i < userInputNumber.length-1; i++) {
int redNumber = userInputNumber[i];
for (int i1 = 0; i1 < arr.length-1; i1++) {
if(arr[i1]==redNumber){
redcount++;
break;
}
}
}
//判断蓝球
int bludNumber = userInputNumber[userInputNumber.length-1];
if(bludNumber == arr[arr.length-1]){
bluecount++;
}
//恭喜中奖
if(redcount == 6&&bluecount==1){
System.out.println("恭喜你中奖1000万");
}
else if(redcount == 6&&bluecount==0){
System.out.println("恭喜你中奖500万");
}
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 == 3&&bluecount==0)||(redcount == 2&&bluecount==1)||(redcount == 2&&bluecount==0 )||(redcount ==1&&bluecount==1)||(redcount == 0&&bluecount==1)){
System.out.println("恭喜你中奖5元");
}
else {
System.out.println("谢谢惠顾");
}
}
//用户输入中奖号码
public static int [] userNumber(){
int []arr = new int[7];
Scanner scan = new Scanner(System.in);
for (int i = 0; i < 6; ) {
//写入红球数字
System.out.println("请输入第"+(i+1)+"个红球数字");
int redNumber = scan.nextInt();
if(redNumber>=1&&redNumber<=33){
boolean flag = contains(arr,redNumber);
if(!flag){
//如果不存在
arr[i] = redNumber;
i++;
}else{
System.out.println("该数字重复,请重新输入红球数字");
}
}else{
System.out.println("当前红球数字超出范围");
}
}
System.out.println("请输入蓝球数字");
int blueNumber = scan.nextInt();
if(blueNumber>=1&&blueNumber<=16){
arr[arr.length-1] = blueNumber;
}else{
System.out.println("当前蓝球数字超出范围");
}
return arr;
}
//随机抽取号码
public static int [] createNumber(){
int []arr = new int[7];
//随机抽取红球数字
Random r = new Random();
for (int i = 0; i < 6; ) {
int redNumber = r.nextInt(33)+1;
boolean flag = contains(arr,redNumber);
if(!flag){
arr[i] = redNumber;
i++;
}
//随机抽取蓝球
int blueNumber = r.nextInt(16)+1;
arr[arr.length-1] = blueNumber;
}
return arr;
}
public static boolean contains(int []arr,int Number){
for (int i = 0; i < 6; i++) {
if(arr[i]==Number){
return true;
}
}
return false;
}
}