模拟彩票摇号的小游戏(31选7)
生活随笔
收集整理的這篇文章主要介紹了
模拟彩票摇号的小游戏(31选7)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
規(guī)則:機選7個數(shù)
?? ??? ?要求:7個數(shù)不能重復;7個數(shù)的取值區(qū)間1~31之間;7個數(shù)都是隨機生成的
?? ?????? 用戶選7個數(shù)
?? ??? ?要求:7個數(shù)不能重復;7個數(shù)的取值區(qū)間1~31之間; 7個數(shù)都是用戶輸入的
比對機選的數(shù)字與用戶選擇的數(shù)字是否一致?? ?
思路:
?? ?1,生成7個機選數(shù)字,使用數(shù)組存儲
?? ?2,讓用戶輸入7個數(shù),使用數(shù)組存儲
?? ?3,比對機選的數(shù)字與用戶選擇的數(shù)字是否一致
方法一:將數(shù)據(jù)存儲 在數(shù)組中,數(shù)組長度大小固定
import java.util.Random; import java.util.Scanner; public class Demo01 {public static void main(String[] args) {System.out.println("歡迎來到31選7XX游戲");while(true) {System.out.println();//用戶號碼int[] userNums = user();System.out.print("本次選擇的號碼為:");for (int i : userNums) {System.out.print(i+",");}//中獎號碼int[] randomNums = suiJi();System.out.println();System.out.print("本期中獎號碼為:");for (int i : randomNums) {System.out.print(i+",");}System.out.println();int level = level(randomNums, userNums);switch (level) {case 7:System.out.println("一等獎,別墅靠海");break;case 6:System.out.println("二等獎,500萬");break;case 5:System.out.println("三等獎,心系天下");break;case 4:System.out.println("四等獎,吃火鍋");break;case 3:System.out.println("五等獎,泡面一桶");break;default:System.out.println("謝謝惠顧,感謝您為福利事業(yè)做出貢獻,本次中了"+level+"數(shù)");break;}}}//機選7個數(shù)public static int[] suiJi() {Random ran = new Random();//生成7個機選數(shù)字,使用數(shù)組存儲int[] num1 = new int[7];for (int i = 0; i < num1.length; i++) {//7個數(shù)的取值區(qū)間1~31之間int x = ran.nextInt(31)+1;if (compare(num1, x)) {i--;}else {num1[i] = x;}}return num1;}//用戶選7個數(shù)public static int[] user() {Random ran = new Random(); Scanner scan = new Scanner(System.in);System.out.println("請輸入1~31之間的數(shù)字:");//讓用戶輸入7個數(shù),使用數(shù)組存儲int[] num2 = new int[7];for (int i = 0; i < num2.length; i++) {//7個數(shù)的取值區(qū)間1~31之間System.out.println("請輸入第"+(i+1)+"位數(shù)為:");int x = scan.nextInt();//判斷數(shù)字是否在1~31范圍內(nèi)if (x < 1 || x > 31) {System.out.println("請輸入1~31之間的數(shù)");i--;//判斷輸入的數(shù)字是否重復}else if (compare(num2, x)) {System.out.println("已經(jīng)選擇過該號碼,請重新選擇");i--;}else {num2[i] = x; }}return num2;}//判斷輸入的是否重復public static boolean compare(int[] num,int tag) {for (int i : num) {if (i == tag) {System.out.println("該數(shù)已經(jīng)存在了!");return true;}}return false;}//計數(shù)猜對數(shù)的個數(shù)public static int level(int[] num1,int[] num2) {int num =0;for (int i : num1) {for (int j : num2) {if (i == j) {num++;}} }return num;} }?結果 1:
方法二:使用 ArrayList 創(chuàng)建對象 儲存輸入的數(shù)據(jù)
?
package com.day02.caipiao; import java.util.ArrayList; public class Test {public static void main(String[] args) {System.out.println("******** 歡 迎 來 到 福 利 彩 票 *********");ArrayList<Integer> num1 = QuShu.SuiJi();ArrayList<Integer> num2 = QuShu.UserGuess();System.out.println("本期中獎號碼為:"+num1);System.out.println("用戶選取號碼為:"+num2);int tag = QuShu.Compare(num1, num2);switch (tag) {case 7:System.out.println("一等獎:海邊別墅");break;case 6:System.out.println("二等獎:法拉利一輛");break;case 5:System.out.println("一等獎:喜得500萬");break;case 4:System.out.println("一等獎:獎勵2000¥");break;case 3:System.out.println("一等獎:五元一桶泡面");break;default:System.out.println("感謝您為福利彩票做出的貢獻!");break;}System.out.println("您本次猜到"+tag+"個數(shù),再接再厲!");} }//另創(chuàng)建一個類,獲取數(shù)據(jù)并處理 package com.day02.caipiao; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Random; import java.util.Scanner;public class QuShu {//系統(tǒng)隨機取數(shù)public static ArrayList<Integer> SuiJi() {ArrayList<Integer> list = new ArrayList<Integer>();Random random = new Random();while (list.size() < 7) {int num = random.nextInt(31)+1;//判斷隨機生成的數(shù)是否存在集合中,不存在就增加if (!list.contains(num)) {list.add(num);}}return list; }//用戶輸入數(shù)值public static ArrayList<Integer> UserGuess() {ArrayList<Integer> list2 = new ArrayList<Integer>();Scanner scanner = new Scanner(System.in);while(list2.size() < 7) {System.out.println("請輸入第"+(list2.size()+1)+"個數(shù):");int num1 =scanner.nextInt();if (num1 < 0 ||num1 >31) {System.out.println("此數(shù)不在選取范圍內(nèi),請重新輸入:");}else if(list2.contains(num1)) {System.out.println("此數(shù)已存在,請重新輸入:");}else{list2.add(num1);}}return list2;}//比較用戶輸入的與隨機產(chǎn)生的數(shù)值public static int Compare(ArrayList<Integer> list,ArrayList<Integer> list2) {int count = 0;for (Integer integer : list2) {if (list.contains(integer)) {count++;}}return count ;} }結果 2:
?
?
總結
以上是生活随笔為你收集整理的模拟彩票摇号的小游戏(31选7)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 企业隐患排查文本挖掘比赛(二):算法篇(
- 下一篇: 关于WAMP安装后出现403的解决方法