JAVA项目案例:双色球

import java.util.Random;
import java.util.Scanner;
public class method {
    public static void main(String[] args) {
        int[] userNumbers = userSelectNumbers();
        System.out.println("您投注的号码:");
        printArray(userNumbers);
        int[] luckNumbers=createLuckNumbers();
        System.out.println("中奖的号码:");
        printArray(luckNumbers);
        judge(userNumbers,luckNumbers);
    }

    //打印数组检查是否为用户输入
    public static void printArray(int[] arr) {
        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("]");
    }

    //1.设计一个方法,用于让用户投注一组号码并返回(前6个是红球号码,最后一个是蓝球号码)
    public static int[] userSelectNumbers() {
        //2.创建一个整型数组,用于存储用户投注的7个号码
        int[] numbers = new int[7];
        Scanner sc = new Scanner(System.in);
        //遍历前6个位置,让用户依次输入六个红球号码并存入
        for (int i = 0; i < numbers.length - 1; i++) {
            while (true) {
                //开始让用户为当前位置投注一个红球号码(1-33之间,不能重复)
                System.out.println("请输入第" + (i + 1) + "个红球号码(1-33),不能重复:");
                int number = sc.nextInt();
                if (number < 1 || number > 33) {
                    System.out.println("对不起,你输入的红球号码不在1-33之间,请确认!");
                } else {
                    //判断是否重复
                    if (exist(numbers, number)) {
                        //number当前号码是重复了
                        System.out.println("对不起,你输入的红球号码前面选择过了,请确认!");
                    } else {
                        //number记住的这个号码没有重复,就可以使用了
                        numbers[i] = number;
                        break;//结束当前投注,结束当前死循环
                    }
                }
            }
        }
        while (true) {
            System.out.println("请你输入最后一个蓝球号码(1-16):");
            int number = sc.nextInt();
            if (number < 1 || number > 16) {
                System.out.println("对不起,您输入的篮球号码不在1-16之间,请确认:");
            } else {
                numbers[6] = number;
                break;//篮球号码录入成功,结束死循环
            }
        }
        return numbers;
    }

    public static boolean exist(int[] numbers, int number) {
        //判断这个数字是否在numbers数组中存在
        for (int i = 0; i < numbers.length; i++) {
            if (numbers[i] == number) {
                return true;
            }
        }
        return false;
    }
//设计一个方法,随机一个中奖号码出来
    public static int[] createLuckNumbers() {
        //1.创建一个随机数组,用于存储这七个数据
        int[] numbers = new int[7];
        Random r = new Random();
        //2.遍历前六个位置处,依次随机一个红球号码存入(1-33)不重复
        for (int i = 0; i < numbers.length - 1; i++) {
            while (true) {
                //3.为当前这个位置随机一个红球号码出来存入,
                int number = r.nextInt(33) + 1;
               //4.判断这个号码是否之前出现过(红球号码不能重复)
                if (!exist(numbers, number)) {
                    //number不重复
                    numbers[i] = number;
                    break;//结束死循环,代表找到了当前这个位置的一个不重复的红球号码
                }
            }
        }//录入一个蓝球号码,1-16
        numbers[6] = r.nextInt(16) + 1;
        return numbers;
    }
    //设计一个方法,用于判断用户的中奖情况
    public static void judge(int[]userNumbers,int[]luckNumbers){
        //2.分别定义两个变量用于记住了红球命中了几个以及篮球是否命中
        int redcount=0;
        int bluecount=0;
        //判断红球命中的数量
        //遍历用户投注的号码的前六个红球
        for (int i = 0; i < userNumbers.length-1; i++) {
            //userNumbers[i]
            //开始遍历中奖号码的前六个红球号码,看用户当前选择的这个号码是否命中了
            for (int j = 0; j < luckNumbers.length-1; j++) {
                if (userNumbers[i]==luckNumbers[j]){
                    redcount++;
                    break;
                }
            }
        }
        //3.判断蓝球是否命中
        bluecount=userNumbers[6]==luckNumbers[6]?1:0;
        System.out.println("你命中红球的数量是:"+redcount);
        System.out.println("你命中的蓝球数量是:"+bluecount);
        //4.判断中奖详情,并输出结果
        if  (redcount == 6 && bluecount == 1) {
            System.out.println("恭喜您,您中了1000万,可以开始享受人生了~~~");
        } else if (redcount == 6 && bluecount == 0) {
            System.out.println("恭喜您,您中了500万,可以开始享受人生了~~~");
        } else if (redcount == 5 && bluecount == 1) {
            System.out.println("恭喜您,您中了3000元,可以吃顿小龙虾~~~");
        } else if (redcount == 5 && bluecount == 0 || redcount == 4 && bluecount == 1) {
            System.out.println("恭喜您,中了小奖,200元~");
        } else if (redcount == 4 && bluecount == 0 || redcount == 3 && bluecount == 1) {
            System.out.println("中了10元~");
        } else if (redcount < 3 && bluecount == 1) {
            System.out.println("中了5元~");
        }else{System.out.println("感谢你为福利事业做出了巨大贡献!");
        }
    }
}

效果:

  • 16
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值