双色球代码:封装

封装getBall方法,随机生成一组双色球的中奖号码:
红球为1-33中随机6个不重复的数字
蓝球为1-16中随机一个数字
在main方法中接收用户输入的双色球号码,判断用户是否中奖,中奖规则如下:
一等奖:7个号码相符(6个红色球号码和1个蓝色球号码)(红色球号码顺序不限,下同)
二等奖:6个红色球号码相符;
三等奖:5个红色球号码和1个蓝色球号码相符;
四等奖:5个红色球号码,或4个红色球号码和1个蓝色球号码相符;
五等奖:4个红色球号码,或3个红色球号码和1个蓝色球号码相符;
六等奖:1个蓝色球号码相符(有无红色球号码相符均可)。

以下是代码:

//写getBall方法,返回值为int,调用方法时获得一个随机数组
	public static int[] getBall() {
		//ranball,随机球,红蓝写一起,前6个一判断,最后一个一判断
		int ranball[]=new int[7];
		Random ran=new Random();
		for(int i=0;i<ranball.length;i++) {
			//0 1 2 3 4 5 时是红球,随机1-33且不超范围不重复
			if(i<6) {
				ranball[i]=ran.nextInt(33)+1;
				for(int j=0;j<i;j++) {
					if(ranball[i]==ranball[j]) {
						i--;
					}
				}
			}
			//6是蓝球,随机1-16且不超范围
			if(i==6) {
				ranball[6]=ran.nextInt(16)+1;
			}
		}
		//输出数组,返回随机球ranball数组
		return ranball;
	}
	//main方法
	public static void main(String[] args) {


		//常规Scanner
		Scanner sc=new Scanner(System.in);
		int buyball[]=new int[7];
		System.out.println("本期中奖号码为:");
		//定义一个数组接收随机球,命名prize 奖品
		int prize[]=Arrays.copyOf(getBall(), 7);
		System.out.println(Arrays.toString(prize));
		//定义一个长度为7的数组,让他存储买的球
		int buyball[ ]=new int[7];
		//自选或者机选
		System.out.println("机选请输入0,其他任意数字默认自选");
		int way=sc.nextInt();
		//输入0是机选
		if(way==0) {
			System.out.println("随机生成一注双色球号码为:");
			//如果机选,buyball重新赋值,调用随机球方法
			buyball=Arrays.copyOf(getBall(), 7);
			System.out.println(Arrays.toString(buyball));
		}else {
			//如果自选,buyball重新赋值生成一个长度为7的数组
			buyball=new int[7];
			Random ran=new Random();
			//还是将红球篮球放一起,分别判断
			for(int i=0;i<buyball.length;i++) {
				//0 1 2 3 4 5 时是红球,随机1-33且不超范围不重复
				if(i<6) {
					System.out.print("请输入第"+(i+1)+"号红球:");
					buyball[i]=sc.nextInt();
					if(buyball[i]>33||buyball[i]<1) {
						System.out.println("您购买的号码不合法!");
						i--;
					}
					for(int j=0;j<i;j++) {
						if(buyball[i]==buyball[j]) {
							System.out.println("您购买的号码已重复!");
							i--;
						}
					}
				}
				//6是蓝球,随机1-16且不超范围
				if(i==6) {
					System.out.print("请输入购买蓝球号码:");
					buyball[6]=sc.nextInt();
					if(buyball[i]>16||buyball[i]<1) {
						System.out.println("您购买的号码不合法!");
						i--;
					}
				}
			}
			System.out.println("您自选购买的双色球合计为:");
			System.out.println("红球蓝球"+Arrays.toString(buyball));
			System.out.println();
		}
		//定义中奖红球和蓝球个数,前6个遍历找红球,后1个是蓝球
		int moneyred=0,moneyblue=0;
		//循环遍历,因为可以顺序不同
		//如果必须顺序相同,就只写一个循环
		for(int i=0;i<buyball.length;i++) {
			for(int j=0;j<prize.length;j++) {
				if(i<6&&j<6 &&buyball[i]==prize[j]) {
					//如果在前6个,红球相等,数量++
					moneyred++;
				}
				if(buyball[6]==prize[6]) {
					//最后一个,如果相等,中奖蓝球就是1
					moneyblue=1;
				}
			}
		}
		System.out.println("您中奖情况为:红球"+moneyred+"个,蓝球"+moneyblue+"个");
		//判断,老生常谈
		if(moneyred==6&&moneyblue==1) {
			System.out.println("您获得一等奖!");
		}else if(moneyred==6&&moneyblue==0) {
			System.out.println("您获得二等奖!");
		}else if(moneyred==6&&moneyblue==7) {
			System.out.println("您获得三等奖!");
		}else if(moneyred==5&&moneyblue==0 ||moneyred==4&&moneyblue==1) {
			System.out.println("您获得四等奖!");
		}else if(moneyred==4&&moneyblue==0 ||moneyred==3&&moneyblue==1) {
			System.out.println("您获得五等奖!");
		}else if(moneyblue==1) {
			System.out.println("您获得六等奖!");
		}else {
			System.out.println("谢谢惠顾!");
		}

	}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值