Java简易抽号码

这是一个Java程序,用于模拟彩票抽号过程。用户输入6个红球和1个蓝球号码,系统生成一组随机的7个号码进行匹配。根据匹配的红球数量和蓝球情况,判断中奖等级,如中1000万、中500万等。
package Java_Tset;

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class Test_getticket {
    public static void main(String[] args) {
        int[] number = getnumber();
        System.out.println(Arrays.toString(number)); //用户输入的抽奖号码;
        int[] systemnum = getSystem();
        System.out.println(Arrays.toString(systemnum));//系统生成的随机中奖号码;
        get(number, systemnum); //最终结果;
    }

    //    定义一个方法,用于判断中奖情况;
    public static void get(int[] number, int[] systemnum) {
        //    1,先统计红球中了多少个;
        int count = 0;
//     循环里面套循环,用户与系统的球相比较;
        for (int i = 0; i < number.length; i++) {
            for (int i1 = 0; i1 < systemnum.length; i1++) {
                if (number[i] == systemnum[i1]) {
                    count++;
                    break;
                }
            }
        }
//    2,再结合是否中篮球,判断对应的中奖情况;switch
        if (number[6] == systemnum[6]) {
            switch (count) {
                case 6:
                    System.out.println("中1000万");
                    break;
                case 5:
                    System.out.println("中3000元");
                    break;
                case 4:
                    System.out.println("中200元");
                    break;
                case 3:
                    System.out.println("中10元");
                    break;
                case 2, 1, 0:
                    System.out.println("中5元");
                    break;
            }

        } else {
            switch (count) {
                case 6:
                    System.out.println("中500万");
                    break;
                case 5:
                    System.out.println("中200元");
                    break;
                case 4:
                    System.out.println("中10元");
                    break;
                default:
                    System.out.println("谢谢回顾");
            }

        }
    }


    //    定义一个方法,用于表示开奖的情况
    public static int[] getSystem() {
        //    1,定义一个数组,存放七颗球;
        int[] arr = new int[7];
//    2,创建一个随机数对象;
        Random r = new Random();
//    3,获取前面六颗球,使用随机数赋值;
        for (int i = 0; i < arr.length - 1; i++) {
//      3.1,生成范围再【1,33】
            int systemnum = r.nextInt(1, 34);
//      3.2,判断当前的随机数是否已经存放再数组中,调用方法实现;
            boolean flag = getbn(arr, systemnum);
//      3.3,根据方法的结果去判断是否需要存放还是重复生成;
            if (flag) {
                System.out.println("输入重复");
                i--;
            } else {
                arr[i] = systemnum;
            }
        }
//    4,给蓝球赋值,赋值的范围再【1,16】
        arr[6] = r.nextInt(1, 17);
//    5,返回数组;
        return arr;

    }

    //    定义一个方法用于表示用户投注的情况;方法最终不用定义参数,需要返回一个数组;
    public static int[] getnumber() {
        int[] arr = new int[7];
//    1,我们需要创建一个数组,用于存放七颗球【前六个为红,后一个为蓝】
//    2,遍历数组前六个元素,使用键盘录入给元素赋值;
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < arr.length - 1; i++) {
//      2.1,键盘输入的数据考虑范围[1,33]
            System.out.println("输入第" + (i + 1) + "个红球");
            int rednum = sc.nextInt();
//      2.2,如果是满足[1,33],也不能直接存入到数组中,还需要考虑重复问题
            if (rednum >= 1 && rednum <= 33) {
//          定义一个方法,用于判断是否存在数组中;
                boolean flag = getbn(arr, rednum);
                if (flag) {
//           如果重复,还需要继续生成多一次;
                    i--;
                    System.out.println("输入重复");
                } else {
//           如果数据不存在数组中,就可以存放元素;
                    arr[i] = rednum;
                }

            } else {
//      2.3,不满足条件,就直接重新录入多一次;
                i--;
                System.out.println("输入超过范围【1,33】");
            }
        }
//    3,生成篮球再范围[1,16]之间,如果不在,则重新生成,如果再就存放到数组的第七个位置;
        while (true) {
            System.out.println("输入蓝球");
            int bluenum = sc.nextInt();
            if (bluenum <= 16 && bluenum >= 1) {
                arr[6] = bluenum;
                break;
            } else {
                System.out.println("输入有误");
            }

        }
        return arr;
    }

    private static boolean getbn(int[] arr, int num) {
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == num) {
                return true;
            }
        }
        return false;
    }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值