栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java实现双色球的小玩法(包含产生中奖号码、用户选号和号码对奖)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java实现双色球的小玩法(包含产生中奖号码、用户选号和号码对奖)

import java.util.Random;
import java.util.Scanner;
public class Slyj {
    public static void main(String[] args) {
       Random ss = new Random();
        int[] a = randomCommon(1, 33, 7); //调用randomCommon方法随机获得7个1-33不重复的中奖球号码
        if (a == null) throw new AssertionError();  //断言数组a的地址不为空,否则可能产生空指针异常
        a[a.length - 1] = ss.nextInt(16) + 1;  //给最后一个蓝球随机产生1个1-16的号码
		   System.out.print("(调试用的)中奖号码为:");
		   winning_number(a);
        int[] yh = client();                     //调用client方法让客户输入6个1-33的红球,1个1-16号码的蓝球
        int blue = 0;                           //变量blue用来判断用户蓝球号码是否中奖
        System.out.println("中奖号码为:");
        winning_number(a);
        System.out.println("您的号码为:");
        winning_number(yh);
        if (a[a.length - 1] == yh[yh.length - 1]) {
            blue = 1;
        }
        bonus(a, yh, blue);
    }

    public static void bonus(int[] a, int[] b, int h) {
        int red = 0;
        for (int i = 0; i < b.length - 1; i++) {      //客户号码数组遍历中奖号码数组
            for (int j = 0; j < a.length - 1; j++) {
                if (a[i] == b[j]) red++;              //red存的值为:有几个红球中奖
            }
        }
        if (h == 0) {                // 根据双色球规则判断中奖情况
            switch (red) {
                case 4:
                    System.out.println("恭喜您获得五等奖:奖金10元");
                    break;
                case 5:
                    System.out.println("恭喜您获得四等奖:奖金200元");
                    break;
                case 6:
                    System.out.println("恭喜您获得二等奖:奖金最高500万元");
                    break;
                default:
                    System.out.println("很遗憾!您没有中奖!");
            }
        }
        if (h != 0) {
            switch (red) {
                case 0:
                case 1:
                case 2:
                    System.out.println("恭喜您获得六等奖:奖金5元");
                    break;
                case 3:
                    System.out.println("恭喜您获得五等奖:奖金100元");
                    break;
                case 4:
                    System.out.println("恭喜您获得四等奖:奖金200元");
                    break;
                case 5:
                    System.out.println("恭喜您获得三等奖:奖金3000元");
                    break;
                case 6:
                    System.out.println("恭喜您获得一等奖:奖金最高1000万元");
                    break;
                default:
                    System.out.println("很遗憾!您没有中奖!");
            }
        }

    }

    public static int[] client() {
        Scanner s = new Scanner(System.in);
        System.out.println("请输入您的双色球号码:");  //这个方法咱们这种刚入门的小白不友好,太费脑子
        int[] b = new int[7];                       //想要了解的可以跟我控屏连麦交流
        int c = 1, d;                               //想要了解的可以跟我控屏连麦交流
        boolean e = true;                           //想要了解的可以跟我控屏连麦交流
        boolean f = true;                           //想要了解的可以跟我控屏连麦交流
        while (f) {                                 //想要了解的可以跟我控屏连麦交流
            d = s.nextInt();
            if (d >= 1 && d <= 33) {
                b[0] = d;
                f = false;
            } else System.out.println("您输入的号码超出红球范围!请重新输入:");
        }
        while (e) {
            boolean k = true;
            d = s.nextInt();
            for (int i = 0; i < 7; i++) {
                if (c == 6) {
                    break;
                }
                if (d == b[i]) {
                    System.out.println("号码重复!请重新输入:");
                    k = false;
                    break;
                }
            }
            while (k) {
                if (c == 6 && d >= 1 && d <= 16) {
                    b[c] = d;
                    e = false;
                    k = false;
                }
                if (k && d >= 1 && d <= 33 && c != 6) {
                    b[c] = d;
                    ++c;
                    k = false;
                } else {
                    if (c < 6){
						System.out.println("您输入的号码超出红球范围!请重新输入:");
						break;
					}
                    if (c == 6 && d < 1 || d > 16) System.out.println("您输入的号码超出蓝球范围!请重新输入:");
                    break;
                }
            }
        }
        return b;
    }

    public static void winning_number(int[] a) {
        System.out.print("[");
        for (int i = 0; i < a.length; i++)
            System.out.print(i == a.length - 1 ? a[i] : (a[i] + ","));
        System.out.println("]");
    }

    public static int[] randomCommon(int min, int max, int n) {         //CV过来的  想了解咱们可以一起探讨
        if (n > (max - min + 1) || max < min) {
            return null;                                             //(int min, int max, int n)
        }                                                  //此方法功能是:例如(min=1,max=15,n=6)
        int[] result = new int[n];                          //          是产生6个1-15之间不重复的数
        int count = 0;
        while (count < n) {
            int num = (int) (Math.random() * (max - min)) + min;
            boolean flag = true;
            for (int j = 0; j < n; j++) {
                if (num == result[j]) {
                    flag = false;
                    break;
                }
            }
            if (flag) {
                result[count] = num;
                count++;
            }
        }
        return result;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/785976.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号