|
@@ -0,0 +1,128 @@
|
|
|
+package com.sf.preheat.day02;
|
|
|
+
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.Random;
|
|
|
+import java.util.Scanner;
|
|
|
+
|
|
|
+public class BallDemo {
|
|
|
+ static final int BLUE_BALL_BOUND = 16;
|
|
|
+ public static void main(String[] args) {
|
|
|
+ System.out.println("欢迎来到双色球玩法");
|
|
|
+
|
|
|
+ String[] ballPool = getBallPool();
|
|
|
+ System.out.println(Arrays.toString(ballPool));
|
|
|
+
|
|
|
+ String[] sysRedBalls = getRedBalls(ballPool);
|
|
|
+
|
|
|
+ System.out.println("机选出来的红球为:" + Arrays.toString(sysRedBalls));
|
|
|
+ Random r = new Random();
|
|
|
+
|
|
|
+ String sysBlueBall = ballPool[r.nextInt(BLUE_BALL_BOUND)];
|
|
|
+ System.out.println("系统选的一个篮球为 :" + sysBlueBall);
|
|
|
+
|
|
|
+ System.out.println("用户选球: (1) 机选 (2) 手选");
|
|
|
+ Scanner sc = new Scanner(System.in);
|
|
|
+ int type = sc.nextInt();
|
|
|
+
|
|
|
+ String[] userRedBalls = new String[6];
|
|
|
+ String userBlueBall = "";
|
|
|
+ boolean flag = true;
|
|
|
+ while (flag){
|
|
|
+ switch (type){
|
|
|
+ case 1:
|
|
|
+ userRedBalls = getRedBalls(ballPool);
|
|
|
+ userBlueBall = ballPool[r.nextInt(BLUE_BALL_BOUND)];
|
|
|
+ flag = false;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ System.out.println("手选红球,请依次输入六个红球:");
|
|
|
+ for(int i = 0 ; i < userRedBalls.length ; i++)
|
|
|
+ userRedBalls[i] = sc.next();
|
|
|
+ System.out.println("手选蓝球,请输入一个蓝球:");
|
|
|
+ userBlueBall = sc.next();
|
|
|
+ flag = false;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ System.out.println("用户选球: (1) 机选 (2) 手选");
|
|
|
+ type = sc.nextInt();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ System.out.println("-----------用户选完了------------");
|
|
|
+ System.out.println("用户选的六个红球为 : " + Arrays.toString(userRedBalls) );
|
|
|
+ System.out.println("用户选的蓝球为 : " + userBlueBall );
|
|
|
+
|
|
|
+ System.out.println("-----------是否中奖-----------");
|
|
|
+ System.out.println(isAward(sysRedBalls, sysBlueBall, userRedBalls, userBlueBall));
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * 判断是否中奖了
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String isAward(String[] sysRedBalls , String sysBlueBall , String[] userRedBalls , String userBlueBall){
|
|
|
+ int blueCount = 0 ;
|
|
|
+
|
|
|
+ if(sysBlueBall.equals(userBlueBall)) blueCount ++;
|
|
|
+ int redCount = 0 ;
|
|
|
+ for(String x : sysRedBalls){
|
|
|
+ for(String y : userRedBalls){
|
|
|
+ if(x.equals(y)) redCount++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ System.out.println("几个红球相同:" + redCount + ", 篮球是否相同 : " + blueCount);
|
|
|
+ if(blueCount == 1 && redCount < 3) return "六等奖";
|
|
|
+ else if((blueCount + redCount) == 4) return "五等奖";
|
|
|
+ else if((blueCount + redCount) == 5) return "四等奖";
|
|
|
+ else if(redCount == 5 && blueCount == 1) return "三等奖";
|
|
|
+ else if(redCount == 6 && blueCount == 0) return "二等奖";
|
|
|
+ else if(redCount == 6 && blueCount == 1) return "一等奖";
|
|
|
+ else return "没中奖,很遗憾~~~";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * 传递一个球池过来,从球池中获取6个不重复的红球
|
|
|
+ * @param ballPool
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String[] getRedBalls(String[] ballPool){
|
|
|
+ String[] redBalls = new String[6];
|
|
|
+ Random r = new Random();
|
|
|
+ int count = 0;
|
|
|
+ boolean[] flag = new boolean[ballPool.length];
|
|
|
+
|
|
|
+ while (true){
|
|
|
+ int index = r.nextInt(ballPool.length);
|
|
|
+ if(flag[index]){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ redBalls[count++] = ballPool[index];
|
|
|
+ flag[index] = true;
|
|
|
+
|
|
|
+ if(count == 6)
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ return redBalls;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * 获取hong球的数组/集合
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String[] getBallPool(){
|
|
|
+ String[] ballPool = new String[33];
|
|
|
+
|
|
|
+ for(int i = 1 ; i <= ballPool.length ; i++){
|
|
|
+
|
|
|
+ if(i < 10)
|
|
|
+ ballPool[i - 1] = "0" + i;
|
|
|
+ else ballPool[i - 1] = i + "";
|
|
|
+ }
|
|
|
+ return ballPool;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|