# Java implementation of two-color ball

Posted by Luvac Zantor on Thu, 06 Jan 2022 02:47:10 +0100

# Topic introduction

### 1. Introduction to playing method

Each betting number of "two-color ball" consists of 6 red ball numbers and 1 blue ball number. The red ball number is selected from 1 ~ 33, and the blue ball number is selected from 1 ~ 16. The number of matches and the color of the ball determine whether or not to win the prize.

### 3. Requirements

1. Generate the winning number of the current two-color ball. (Note: 1. The generated red ball is random, orderly and non repeatable. 2. The random range of blue ball and red ball is different, and basketball is allowed to repeat with red ball)

2. There are two ways for users to generate data
(1) Automatically generated. (machine selected)
(2) Enter the quiz number through the console. (optional)

3. Record the number of correct balls in red ball and blue ball guessing, and output the guessing results and the current two-color ball number according to the award conditions.

# analysis

1. The array is used to represent the selection number of two-color ball. The size of the array is 7. The first six elements represent the number of red ball and the last element represents the number of blue ball.
```		int[] array = new int[7];    // Store the number of two-color ball. The first 6 are red balls and the last is blue ball
```

Two arrays are defined here. One represents the user's two-color ball number and the other represents the winning two-color ball number.

```		int[] array = new int[7];    // Store the number of two-color ball. The first 6 are red balls and the last is blue ball
int[] result;    // The winning two-color ball number
```
1. Define two counters to record the number of red ball and blue ball winners respectively.
```		int countRed = 0;    // Number of red ball winners
int countBlue = 0;    // How many pieces did the blue ball win
```
1. switch is used for branch operation to realize machine selection and self selection
2. The machine selected numbers and winning numbers are automatically generated by random numbers. Here, some repetitive contents are written in a function.
```    // Random generation of two-color spheres
public static int[] randomArray() {
int[] array = new int[7];
// Generate 6 different random numbers to represent 6 red balls
for (int i = 0; i < 6; i++) {
boolean flag = true;    // Define a flag to judge whether the red ball number is repeated
int randomNum = (int)(Math.random() * 33 + 1);    // Randomly generate a red ball number (1 ~ 33)
// Only the red ball requires different numbers to traverse the array, so you only need to traverse the first 6 numbers
for (int j = 0; j < 6; j++) {
if (randomNum == array[j]) {    // Compare all the numbers in the array with the newly generated random numbers
i--;    // Roll i back
flag = false;    // Indicates repetition
break;
}
}
if (flag) {    // If not repeated
array[i] = randomNum;    // Store the randomly generated red ball number in the array
}
}
array[6] = (int)(Math.random() * 16 + 1);    // Randomly generate basketball numbers 1 ~ 16
return array;
}
```
1. Red balls need to be sorted in ascending order, so you only need to sort the first 6 elements (a total of 7 elements) in the array. Bubble sorting is used here.
```	// Sort (from small to large) bubble
public static int[] sort (int[] a) {
// Only the first 6 numbers are sorted, so it is a.length-2 here
for (int i = 0; i < a.length-2; i++) {
for (int j = 0; j < a.length-i-2; j++) {
if (a[j] > a[j+1]) {
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
return a;
}
```

Not much code.

# source code

```public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("============Welcome to the two-color ball machine selection system (bonus of 5 million in this period)============");
System.out.println("1: Machine selected two-color ball\t\t\t2: Optional two-color ball");
int n = sc.nextInt();
int[] array = new int[7];    // Store the number of two-color ball. The first 6 are red balls and the last is blue ball
int[] result;    // The winning two-color ball number
int countRed = 0;    // Number of red ball winners
int countBlue = 0;    // Number of blue ball winners
switch(n) {
case 1:    // Machine selected two-color ball
// Randomly generated two-color ball number
array = randomArray();
// Sort the generated red ball numbers
sort(array);
// Output machine selection results
System.out.print("Machine selected red ball number:[");
for (int i = 0; i < 6; i++) {
if (i != 5) {
System.out.print(array[i] + ", ");
} else {
System.out.println(array[i] + "]");
}
}
System.out.println("Machine selected basketball number:[" + array[6] + "]");
break;
case 2:    // Optional two-color ball
System.out.println("Optional");
System.out.println("Please enter the red ball number you selected (1)~33)");
for (int i = 0; i < 6; i++) {
System.out.print("Please enter page" + (i+1) + "Number of red balls:");
array[i] = sc.nextInt();
}
System.out.print("Please enter the number of the blue ball (1~16): ");
array[6] = sc.nextInt();
// Red ball sorting
sort(array);
break;
default:
System.out.println("Input error!");
System.exit(0);
}
System.out.println("========================The prize is being opened. Please wait========================");
// Randomly generate winning numbers
result = randomArray();
// Sort the winning numbers of the generated red ball
sort(result);
// Output the winning number
System.out.print("Red ball number of this issue:[");
for (int i = 0; i < 6; i++) {
if (i != 5) {
System.out.print(result[i] + ", ");
} else {
System.out.println(result[i] + "]");
}
}
System.out.println("Current winning basketball number:[" + result[6] + "]");
// Count the number of red balls
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 6; j++) {
if (array[i] == result[j]) {
countRed++;
}
}
}
if (array[6] == result[6]) {    // Count the number of blue balls
countBlue++;
}
System.out.println("Choose 6+1 in"+ countRed + "+" + countBlue);
// Judge whether to win the prize
if (countRed <= 3 && countBlue == 0) {
System.out.println("I'm sorry you didn't win the prize ╭(╯^╰)╮");
} else if (countRed < 3 && countBlue == 1) {
System.out.println("Congratulations on winning the sixth prize! Five dollars!");
} else if ((countRed ==3 && countBlue == 1) || (countRed == 4 && countBlue == 0)) {
System.out.println("Congratulations on winning the fifth prize! Ten dollars!!");
} else if ((countRed == 4 && countBlue == 1) || (countRed == 5 && countBlue == 0)) {
System.out.println("Congratulations on winning the fourth prize! 200 yuan!!!");
} else if (countRed == 5 && countBlue == 1) {
System.out.println("Congratulations on winning the third prize! 3000 yuan!!!!");
} else if (countRed == 6 && countBlue == 0) {
System.out.println("Congratulations on winning the second prize! "+ 500*0.3 +"Ten thousand yuan w(ﾟДﾟ)w!!!!!");
} else {
System.out.println("Congratulations on winning the first prize! 5 million yuan (^o^) / w(ﾟДﾟ)w!!!!!");
}
}

// Random generation of two-color spheres
public static int[] randomArray() {
int[] array = new int[7];
// Generate 6 different random numbers to represent 6 red balls
for (int i = 0; i < 6; i++) {
boolean flag = true;    // Define a flag to judge whether the red ball number is repeated
int randomNum = (int)(Math.random() * 33 + 1);    // Randomly generate a red ball number (1 ~ 33)
// Only the red ball requires different numbers to traverse the array, so you only need to traverse the first 6 numbers
for (int j = 0; j < 6; j++) {
if (randomNum == array[j]) {    // Compare all the numbers in the array with the newly generated random numbers
i--;    // Roll i back
flag = false;    // Indicates repetition
break;
}
}
if (flag) {    // If not repeated
array[i] = randomNum;    // Store the randomly generated red ball number in the array
}
}
array[6] = (int)(Math.random() * 16 + 1);    // Randomly generate basketball numbers 1 ~ 16
return array;
}

// Sort (from small to large) bubble
public static int[] sort (int[] a) {
// Only the first 6 numbers are sorted, so it is a.length-2 here
for (int i = 0; i < a.length-2; i++) {
for (int j = 0; j < a.length-i-2; j++) {
if (a[j] > a[j+1]) {
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
return a;
}
```

# summary

This is a small case in the study. The author is still studying hard. If he is not thoughtful, please criticize and correct all the gods and learn together.

Topics: Java