好程序员训练营-冯红静

android培训——我的java笔记,期待与您交流!
今天用JAVA写了一个小游戏,模拟双色球彩票。
这是一个比较简单的小程序,应用到JAVA的基本语法,逻辑不是很麻烦,需要注意的有第二个部分生成系统号码处,利用一个数组产生不重复的号码。
1、首先定义需要的变量

        // 存储系统生成的红球
        int[] sysRedBall = new int[6];
        // 存储系统生成的蓝球
        int sysBlueBall = 0;
        // 用户选择的红球
        int[] userRedBall = new int[6];
        // 用户选择的蓝球
        int userBlueBall = 0;
        // 正确的红球个数
        int redCount = 0;
        // 正确的蓝球个数
        int blueCount = 0;
        // 随机产生系统产生的号码
        Random random = new Random();

2、生成系统号码

        // 红球号码
        // 为了防止号码不重复,另没个选中过后的号码相应的redBall[i]=-1;
        int[] redBall = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,32, 33 };
        for (int i = 0; i < sysRedBall.length; i++) {
            while (true) {
                index = random.nextInt(33);
                if (redBall[index] != -1) {
                    // 产生一个在0-32之间随机数
                    sysRedBall[i] = redBall[index];
                    // 标明已经被取走了,不会再取到以至于产生重复的号码
                    redBall[index] = -1;
                    break;
                }
            }
        }
        // 蓝球号码
        sysBlueBall = random.nextInt(16) + 1;

3、接受用户的选号

        System.out.print("请选择红球号码 (1-33)");
        Scanner in = new Scanner(System.in);
        for (int i = 0; i < userRedBall.length; i++) {
            userRedBall[i] = in.nextInt();
        }
        System.out.println("请选择蓝球号码(1-16)");
        userBlueBall = in.nextInt();

4、验证是否中奖

        if (redCount == 6 && blueCount == 1) {
            System.out.println("恭喜你,中了一等奖500万!");
        } else if (redCount == 6 && blueCount == 0) {
            System.out.println("恭喜你,中了二等奖50万!");
        } else if (redCount == 5 && blueCount == 1) {
            System.out.println("恭喜你,中了三等奖3000块!");
        } else if (redCount == 5 || (redCount == 4 && blueCount == 1)) {
            System.out.println("恭喜你,中了四等奖500块!");
        } else if (redCount == 4 && (redCount == 3 && blueCount == 1)) {
            System.out.println("恭喜你,中了五等奖200块!");
        } else if (blueCount == 1) {
            System.out.println("恭喜你,中了六等奖5块!");
        } else {
            System.out.println("感谢您的支持,下次加油哦!!!");
        }

5、输出结果,并对红球的结果进行排序

        int temp;
        // 简单的冒泡排序
        for (int i = 0; i < sysRedBall.length; i++) {
            for (int j = 0; j < sysRedBall.length - i - 1; j++) {
                if (sysRedBall[j] > sysRedBall[j + 1]) {
                    temp = sysRedBall[j];
                    sysRedBall[j] = sysRedBall[j + 1];
                    sysRedBall[j + 1] = temp;
                }
            }
        }
        System.out.print("本期中奖的红球号码为:");
        for(int i = 0; i < sysRedBall.length; i++){
            System.out.print(sysRedBall[i] + " ");
        }
        System.out.println();
        System.out.print("本期蓝球号码为:" + sysBlueBall);

6、结果测试
好程序员训练营-冯红静_第1张图片

你可能感兴趣的:(java,游戏,程序员)