双色球彩票是一种流行的彩票游戏,它由6个红球号码和1个蓝球号码组成。红球号码范围是1到33,蓝球号码范围是1到16。以下是一个Java代码示例,用于生成双色球彩票的随机号码,并验证用户输入的号码是否符合规则。
import java.util.Random;
import java.util.Scanner;
public class DoubleColorBall {
// 生成随机红球号码
public static int[] generateRedBalls() {
int[] redBalls = new int[6];
Random random = new Random();
for (int i = 0; i < 6; i++) {
redBalls[i] = random.nextInt(33) + 1;
}
return redBalls;
}
// 生成随机蓝球号码
public static int generateBlueBall() {
return new Random().nextInt(16) + 1;
}
// 验证号码是否符合双色球规则
public static boolean validateNumbers(int[] redBalls, int blueBall) {
// 验证红球号码是否在1到33之间
for (int ball : redBalls) {
if (ball < 1 || ball > 33) {
return false;
}
}
// 验证蓝球号码是否在1到16之间
if (blueBall < 1 || blueBall > 16) {
return false;
}
// 验证红球号码是否不重复
for (int i = 0; i < redBalls.length; i++) {
for (int j = i + 1; j < redBalls.length; j++) {
if (redBalls[i] == redBalls[j]) {
return false;
}
}
}
return true;
}
// 打印号码
public static void printNumbers(int[] redBalls, int blueBall) {
System.out.print("红球号码:");
for (int ball : redBalls) {
System.out.print(ball + " ");
}
System.out.println("\n蓝球号码:" + blueBall);
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 生成随机号码
int[] redBalls = generateRedBalls();
int blueBall = generateBlueBall();
// 验证并打印随机号码
if (validateNumbers(redBalls, blueBall)) {
printNumbers(redBalls, blueBall);
} else {
System.out.println("生成的号码不符合规则!");
}
// 用户输入号码
System.out.println("请输入6个红球号码(1-33),用空格分隔:");
int[] userRedBalls = new int[6];
for (int i = 0; i < 6; i++) {
userRedBalls[i] = scanner.nextInt();
}
System.out.println("请输入1个蓝球号码(1-16):");
int userBlueBall = scanner.nextInt();
// 验证用户输入的号码
if (validateNumbers(userRedBalls, userBlueBall)) {
System.out.println("您输入的号码符合规则!");
} else {
System.out.println("您输入的号码不符合规则!");
}
scanner.close();
}
}
这段代码首先定义了一个DoubleColorBall类,其中包含了生成随机号码、验证号码和打印号码的方法。在main方法中,我们首先生成一组随机号码,并验证它们是否符合规则。然后,我们要求用户输入一组号码,并验证这些号码是否符合规则。
运行此代码将生成一组随机号码,并要求用户输入一组号码。用户输入的号码将经过验证,并给出相应的反馈。
