双色球背后的秘密

424 阅读3分钟

双色球代码的编写

前言:为何要进行这个程序的编写?

太多人沉迷彩票,幻想自己可以中大奖,一步登天.
实则概率比自己被雷劈还小,希望此代码的编写,探究双色球本质
可以让沉迷之人惊醒,不要为此浪费时间和精力,得不偿失.

双色球的起始界面

首先我们应提醒用户输入投注号码,并在最后显示中奖号码,告知中奖情况.

  
  
public class text {  
    public static void main(String[] args) {  
        int[] user = user();  
        System.out.println("您投注的号码:");  
        printer(user);  
        int[] lucknumbers =lucknumbers();  
        System.out.println("中奖的号码:");  
        printer(lucknumbers);  
        judge(user,lucknumbers);  
  
  
    }

1.投注

引导用户输入正确范围的数字.进行投注 把输入过程写进死循环,当输入不符条件时,重新输入 因为红球和篮球限定范围不同,又需要重新一个死循环来完成投注. 因为红色球不能出现相同数字,最后需要一个布尔类型加死循环进行限制. 直至完成七个数字的输入.

        int[] numbers = new int[7];  
        Scanner sc = new Scanner(![]()System.in);  
        for (int i = 0; i < numbers.length; i++) {  
            while (true) {  
                System.out.println("请你输入第"+(i+1)+"个红色球~~");  
                int number = sc.nextInt();  
                if (number < 1 || number > 33) {  
                    System.out.println("亲~,超范围了~~请确认哦~~");  
                } else {  
                    if (exist(numbers, number)) {  
                        System.out.println("sorry,重复啦,请认真点哦~~");  
                    } else {  
                        numbers[i] = number;  
                        break;  
                    }  
                }  
            }  
        }
        while (true) {  
            System.out.println("结束啦,请输入蓝球~~");  
            int number = sc.nextInt();  
            if (number < 1 || number > 16) {  
                System.out.println("范围怎么又不对!哼!~");  
            } else {  
                numbers[6] = number;  
                break;  
            }  
        }  
return numbers;  
    }
    private static boolean exist(int[] numbers, int number) {  
        for (int i = 0; i < numbers.length; i++) {  
            if(numbers[i] ==number){  
                return true;  
            }  
        }  
        return false;  
    }
对投注号码展示的方法

我们应以数组的方式对该投注的七个数字进行储存,并以正确的格式进行输出.

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

对数组进行遍历时,再通过三元运算符,输出正确格式.

2.中奖号码的随机生成

生成随机数,需要用到函数Random,同时注意函数中的那一位数不在其中,限定范围为32,函数中应写为33. 因为红色六个为一组,蓝色单独一个.所以要用到随机生成两个随机数. 最后将生成的七位数存入中奖号码数组中.

    Random r = new Random();  
    int []numbers = new int[7];  
    for (int i = 0; i <numbers.length-1 ; i++) {  
        while (true){  
            int number = r.nextInt(33)+1;  
            if(!exist(numbers,number)){  
                numbers[i] = number;  
                break;  
            }  
        }  
    }  
    numbers[6] = r.nextInt(16)+1;  
    return numbers;  
}

3.中奖核验方法

对投注号码和中奖号码进行遍历,同时记录红色球和蓝色球相同个数,最后打印告知用户

    Random r = new Random();  
    int []numbers = new int[7];  
    for (int i = 0; i <numbers.length-1 ; i++) {  
        while (true){  
            int number = r.nextInt(33)+1;  
            if(!exist(numbers,number)){  
                numbers[i] = number;  
                break;  
            }  
        }  
    }  
    numbers[6] = r.nextInt(16)+1;  
    return numbers;  
}  
public  static  void judge(int[] user,int[]luckNumbers){  
        int red = 0;  
        int blue = 0;  
  
    for (int i = 0; i < user.length; i++) {  
        for (int j = 0; j < luckNumbers.length; j++) {  
            if(user[i] ==luckNumbers[j]){  
                red++;  
                break;  
  
            }  
        }  
          
    }  
    blue = user[6] ==luckNumbers[6]?1:0;  
    System.out.println("您命中的红球是:"+red);  
    System.out.println("您命中的红球是:"+blue);

4.判断中奖详情,并输出结果

根据不同的中奖情况,设置奖项,用户可多次体验,感知一等奖的中奖难度.

        System.out.println("恭喜您,古茗奶茶一杯~,上门免费取!");  
    }else if(red == 6 && blue == 0){  
        System.out.println("恭喜您,中了一个嘴巴子,可以舒服一下了~~~");  
    }else if(red == 5 && blue == 1){  
        System.out.println("恭喜您,再抽一次!可以b溃了~");  
    }else if(red == 5 && blue == 0 ||red == 4 && blue == 1){  
        System.out.println("恭喜您,中了小奖:俯卧撑二十个~");  
    }else if(red == 4 && blue == 0 || red == 3 && blue == 1){  
        System.out.println("中了10元~,,,当然是骗你的~~~~");  
    }else if( red < 3 && blue == 1){  
        System.out.println("奖励你个锤子,运气这么差~");}  
        else {  
            System.out.println("傻瓜,一点运气都没有吧?!啊哈哈哈哈~~");  
  
        }