目录
一、内容简介
二、 基本流程
三、具体步骤
1.菜单栏
2.随机生成幸运号码
3.用户输入
4.判断中奖情况
5.打印数组
四、代码实现
五、效果展示
一、内容简介
双色球是彩票的一种玩法,规则如下:
- 红球一共6组,每组从1——33中随机抽取抽取,互不重复。
- 蓝球是从1——16中随机抽取一个数。
- 一共7个数字组成双色球的幸运号码。
下面是一张中奖规则图。
二、 基本流程
- 生成幸运随机号码。前6位从1——33中随机选择,不能重复;最后一位从1——16中选择(可与前6个数字重复)。
- 用户输入7位数字,如果不符合规则,要重新输入。
- 判断中奖情况,并输出命中红球和蓝球个数。
三、具体步骤
1.菜单栏
public static void menu()
{
System.out.println("**************************************************************");
System.out.println(" 欢迎来到双色球,开启你的财富之旅~~~ ");
System.out.println("**************************************************************");
System.out.println("游戏规则如下:");
System.out.println("--------------------------------------------------------------");
System.out.println("前6个红球请从1————33中选择,红球不能重复;第7个蓝球请从1————16中选择。");
System.out.println("--------------------------------------------------------------");
System.out.println("以下是中奖规则:");
System.out.println("--------------------------------------------------------------");
System.out.println("一等奖:红球6个+蓝球1个,奖金100万");
System.out.println("二等奖:红球6个+蓝球0个,奖金500万");
System.out.println("三等奖:红球5个+蓝球1个,奖金3000元");
System.out.println("四等奖:红球5个+蓝球0个;红球4个+蓝球1个,奖金200元");
System.out.println("五等奖:红球4个+蓝球0个;红球3个+蓝球1个,奖金10元");
System.out.println("六等奖:红球2个+蓝球1个;红球1个+蓝球1个;红球0个+蓝球1个,奖金5元");
System.out.println("-------------------------------------------------------------");
}
2.随机生成幸运号码
/**
* 随机生成幸运号码
* @return 相应的数组
*/
public static int[] LuckyNumber()//随机生成幸运号码
{
int[] arr = new int[7];
Random ran = new Random();
for (int i = 0; i < arr.length - 1; i++) {//随机生成六个不重复的红球号码
while (true) {
int code = ran.nextInt(33) + 1;
boolean flag = true;
for (int j = 0; j < i; j++) {
if (arr[j] == code) {
flag = false;
break;
}
}
if (flag) {
arr[i] = code;
break;
}
}
}
arr[arr.length - 1] = ran.nextInt(16) + 1;//蓝球号码
return arr;
}
3.用户输入
/**
* 用户输入
* @return 相应的数组
*/
public static int[] UsersNumber()//用户输入号码
{
int[] arr = new int[7];
Scanner sca = new Scanner(System.in);
for (int i = 0; i < arr.length - 1; i++) //6个红球号码
{
System.out.println("请输入第" + (i + 1) + "个号码");
while (true) {
int number = sca.nextInt();
if (number >= 1 && number <= 33) {
arr[i] = number;
break;
} else {
System.out.println("该号码无效,请重新输入!!!");
}
}
}
System.out.println("请输入第" + (arr.length) + "个号码");
while (true) {
int BlueNumber = sca.nextInt();
if (BlueNumber >= 1 && BlueNumber <= 16) {
arr[arr.length - 1] = BlueNumber;
break;
} else {
System.out.println("该号码无效,请重新输入!!!");
}
}
return arr;
}
4.判断中奖情况
/**
* 判断中奖情况
* @param lucknumber 幸运数字的数组
* @param usersnumber 输入的数组
*/
public static void compare(int[] lucknumber, int[] usersnumber)//判断中奖情况
{
int rednumber = 0;
int bluenumber = 0;
for (int i = 0; i < usersnumber.length - 1; i++) {
for (int j = 0; j < lucknumber.length - 1; j++) {
if (usersnumber[i] == lucknumber[j]) {
rednumber++;
break;
}
}
}
if (lucknumber[lucknumber.length - 1] == usersnumber[usersnumber.length - 1])
bluenumber++;
//输出命中情况
System.out.println("您命中的红球个数:" + rednumber);
System.out.println("您命中的蓝球个数:" + bluenumber);
if (bluenumber == 1 && rednumber < 3) {
System.out.println("恭喜您,中了5元!!!");
} else if (bluenumber == 1 && rednumber == 3
|| bluenumber == 0 && rednumber == 4) {
System.out.println("恭喜您,中了10元!!!");
} else if (bluenumber == 1 && rednumber == 4
|| bluenumber == 0 && rednumber == 5) {
System.out.println("恭喜您,中了200元!!!");
} else if (bluenumber == 1 && rednumber == 5) {
System.out.println("恭喜您,中了300元!!!");
} else if (bluenumber == 0 && rednumber == 6) {
System.out.println("恭喜您,中了500万!!!");
} else if (bluenumber == 1 && rednumber == 6) {
System.out.println("恭喜您,中了1000万!!!");
} else
System.out.println("很遗憾,您没能中奖~~~");
}
}
5.打印数组
注:这只是初学的时候使用的方法。
可以使用Arrays.toString()方法直接输出
public static void Print(int[] arr)//打印数组
{
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
System.out.print(i == arr.length - 1 ? arr[i] : arr[i] + ", ");
}
System.out.println("]");
}
四、代码实现
import java.util.Random;
import java.util.Scanner;
public class lottery {
public static void main(String[] args)//双色球系统开发
{
while (true) {
menu();
int[] lucky = LuckyNumber();
int[] users = UsersNumber();
System.out.println("-------------------------------------------------------------");
System.out.println("请用户输入号码");
System.out.println("投注号码是:");
Print(users);
System.out.println("中奖号码是:");
Print(lucky);
compare(lucky, users);
System.out.println();
System.out.println();
System.out.println();
}
}
public static void menu() {
System.out.println("**************************************************************");
System.out.println(" 欢迎来到双色球,开启你的财富之旅~~~ ");
System.out.println("**************************************************************");
System.out.println("游戏规则如下:");
System.out.println("--------------------------------------------------------------");
System.out.println("前6个红球请从1————33中选择,红球不能重复;第7个蓝球请从1————16中选择。");
System.out.println("--------------------------------------------------------------");
System.out.println("以下是中奖规则:");
System.out.println("--------------------------------------------------------------");
System.out.println("一等奖:红球6个+蓝球1个,奖金100万");
System.out.println("二等奖:红球6个+蓝球0个,奖金500万");
System.out.println("三等奖:红球5个+蓝球1个,奖金3000元");
System.out.println("四等奖:红球5个+蓝球0个;红球4个+蓝球1个,奖金200元");
System.out.println("五等奖:红球4个+蓝球0个;红球3个+蓝球1个,奖金10元");
System.out.println("六等奖:红球2个+蓝球1个;红球1个+蓝球1个;红球0个+蓝球1个,奖金5元");
System.out.println("-------------------------------------------------------------");
}
public static void Print(int[] arr)//打印数组
{
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
System.out.print(i == arr.length - 1 ? arr[i] : arr[i] + ", ");
}
System.out.println("]");
}
/**
* 随机生成幸运号码
* @return 相应的数组
*/
public static int[] LuckyNumber()//随机生成幸运号码
{
int[] arr = new int[7];
Random ran = new Random();
for (int i = 0; i < arr.length - 1; i++) {//随机生成六个不重复的红球号码
while (true) {
int code = ran.nextInt(33) + 1;
boolean flag = true;
for (int j = 0; j < i; j++) {
if (arr[j] == code) {
flag = false;
break;
}
}
if (flag) {
arr[i] = code;
break;
}
}
}
arr[arr.length - 1] = ran.nextInt(16) + 1;//蓝球号码
return arr;
}
/**
* 用户输入
* @return 相应的数组
*/
public static int[] UsersNumber()//用户输入号码
{
int[] arr = new int[7];
Scanner sca = new Scanner(System.in);
for (int i = 0; i < arr.length - 1; i++) //6个红球号码
{
System.out.println("请输入第" + (i + 1) + "个号码");
while (true) {
int number = sca.nextInt();
if (number >= 1 && number <= 33) {
arr[i] = number;
break;
} else {
System.out.println("该号码无效,请重新输入!!!");
}
}
}
System.out.println("请输入第" + (arr.length) + "个号码");
while (true) {
int BlueNumber = sca.nextInt();
if (BlueNumber >= 1 && BlueNumber <= 16) {
arr[arr.length - 1] = BlueNumber;
break;
} else {
System.out.println("该号码无效,请重新输入!!!");
}
}
return arr;
}
/**
* 判断中奖情况
* @param lucknumber 幸运数字的数组
* @param usersnumber 输入的数组
*/
public static void compare(int[] lucknumber, int[] usersnumber)//判断中奖情况
{
int rednumber = 0;
int bluenumber = 0;
for (int i = 0; i < usersnumber.length - 1; i++) {
for (int j = 0; j < lucknumber.length - 1; j++) {
if (usersnumber[i] == lucknumber[j]) {
rednumber++;
break;
}
}
}
if (lucknumber[lucknumber.length - 1] == usersnumber[usersnumber.length - 1])
bluenumber++;
//输出命中情况
System.out.println("您命中的红球个数:" + rednumber);
System.out.println("您命中的蓝球个数:" + bluenumber);
if (bluenumber == 1 && rednumber < 3) {
System.out.println("恭喜您,中了5元!!!");
} else if (bluenumber == 1 && rednumber == 3
|| bluenumber == 0 && rednumber == 4) {
System.out.println("恭喜您,中了10元!!!");
} else if (bluenumber == 1 && rednumber == 4
|| bluenumber == 0 && rednumber == 5) {
System.out.println("恭喜您,中了200元!!!");
} else if (bluenumber == 1 && rednumber == 5) {
System.out.println("恭喜您,中了300元!!!");
} else if (bluenumber == 0 && rednumber == 6) {
System.out.println("恭喜您,中了500万!!!");
} else if (bluenumber == 1 && rednumber == 6) {
System.out.println("恭喜您,中了1000万!!!");
} else
System.out.println("很遗憾,您没能中奖~~~");
}
}
五、效果展示