目录
一、内容简介
二、 基本流程
三、具体步骤
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万!!!");} elseSystem.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万!!!");} elseSystem.out.println("很遗憾,您没能中奖~~~");}
}
五、效果展示