#雙色球系統 ##案例: ##中獎條件及獎金錶 ##代碼及解釋 ###main方法代碼: public static void main(String[] args) { //1.隨機6個紅球號碼(1~33,不能重覆),隨機一個藍球號碼(1~16) int[] num = createLuckNum ...
雙色球系統
案例:
中獎條件及獎金錶
代碼及解釋
main方法代碼:
public static void main(String[] args) {
//1.隨機6個紅球號碼(1~33,不能重覆),隨機一個藍球號碼(1~16)
int[] num = createLuckNumber();
// printArray(num);
// System.out.println();
//2.調用一個方法讓用戶輸入7個號碼,作為用戶選號
int[] userNums = userInputNumbers();
// printArray(userNums);
//3.判斷中獎情況
judge(num,userNums);
}
系統產生隨機雙色球號碼的代碼
public static int[] createLuckNumber() {
//a、定義一個動態初始化的數組,存儲7個數字
int[] number = new int[7];
//b、遍曆數組,為每個位置生成對應的號碼(註意只遍歷前6個不重覆的紅球號碼,範圍1~33)
Random random = new Random();
for (int i = 0; i < number.length - 1; i++) {
//為當前位置找出不重覆的6個不重覆且符合範圍的數
while (true) {
int data = random.nextInt(33) + 1;
//c、註意:必須判斷當前隨機的這個號碼之前是否出現過,出現過要重新隨機一個,知道不重覆位置
// 定義一個flag變數,預設true是沒有重覆的
boolean flag = true;
for (int j = 0; j < i; j++) {
if (number[j] == data) {
//data當前數字前面出現過,不能用並且對flag進行標記
flag = false;
break;
}
}
if (flag) {
//data當前值前面沒出現過
number[i] = data;
break;
}
}
}
// d.為第7個位置生成一個1~16的籃球號碼
number[number.length - 1] = random.nextInt(16) + 1;
return number;
} //系統產生隨機雙色球號碼
用戶輸入自己的雙色球號碼的代碼
public static int[] userInputNumbers() {
//a.定義一個數組存儲7個號碼
int[] numbers = new int[7];
//b.讓用戶錄入6個紅球號碼
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < numbers.length - 1; i++) {
System.out.println("請您輸入第" + (i + 1) + "個紅球號碼(1 ~ 33,要求數字不重覆):");
int data = scanner.nextInt();
//c.把當前錄入的號碼存入數組中
numbers[i] = data;
}
//d.單獨錄入一個藍球號碼
System.out.println("請您輸入藍球號碼(1 ~ 16):");
numbers[6] = scanner.nextInt();
return numbers;
} //用戶輸入自己的雙色球號碼
中獎情況分析及中獎結果輸出的代碼
public static void judge(int[] num, int[] userNums) {
//判斷是否中獎了
//1.定義兩個變數分別存儲紅球,藍球的命中個數
int redHit = 0;
int blueHit = 0;
//2.判斷紅球命中了幾個
for (int i = 0; i < num.length - 1; i++) {
for (int j = 0; j < userNums.length - 1; j++) {
if (num[i] == userNums[j]) {
redHit++;
break;
}
}
}
//3.判斷藍球是否命中
blueHit = num[num.length - 1] == userNums[userNums.length - 1] ? 1 : 0;
System.out.println("中獎號碼為:");
printArray(num);
System.out.println();
System.out.println("您投註的號碼為:");
printArray(userNums);
System.out.println();
System.out.println("您命中紅球的個數為:" + redHit);
System.out.println("您命中藍球的個數為:" + blueHit);
//最後判斷中獎情況輸出中獎結果:
if (blueHit == 1 || redHit < 3) {
System.out.println("恭喜您,中了六等獎 5 元");
} else if (blueHit == 1 && redHit == 3 || blueHit == 0 && redHit == 4) {
System.out.println("恭喜您,中了五等獎 10 元");
} else if (blueHit == 1 && redHit == 4 || blueHit == 0 && redHit == 5) {
System.out.println("恭喜您,中了四等獎 200 元大獎");
} else if (blueHit == 1 && redHit == 5) {
System.out.println("恭喜您,中了三等獎 3000 元大獎");
} else if (blueHit == 0 && redHit == 6) {
System.out.println("恭喜您,中了二等獎 500萬 超級大獎!");
} else if (blueHit == 1 && redHit == 6) {
System.out.println("恭喜您,中了一等獎 1000萬 巨獎!!");
} else {
System.out.println("感謝您為福利事業做出的貢獻!!!");
}
} //中獎情況分析及中獎結果輸出
案例來自黑馬案例7