使用random来模拟双色球中奖过程

package testjava;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

/**
 * 
 * @ClassName:  DoubleChromosphere   
 * @Description:TODO(这里用一句话描述这个类的作用)   
 * @author: 清之羽 
 * @date:   2018年8月14日 下午8:21:26   
 * 实现双色球中奖过程的模拟
 * @Copyright: 2018 All rights reserved.
 */
public class DoubleChromosphere 
{
	public static void main(String[] args) 
	{
		DoubleChromosphere doubleChromosphere=new DoubleChromosphere();
//	分别获取红色球和蓝色球的开奖号
		List<Integer> redAwardNumber=doubleChromosphere.getRedAwardNumber();
		List<Integer> blueAwardNumber=doubleChromosphere.getBlueAwardNumber();
//	分别获取红色球和蓝色球的投注号
		List<Integer> redBettingNumber=doubleChromosphere.getRedBettingNumber();
		List<Integer> blueBettingNumber=doubleChromosphere.getBlueBettingNumber();
		int redWinningBall=doubleChromosphere.getRedBallWinningBall(redAwardNumber, redBettingNumber);
		int blueWinningBall=doubleChromosphere.getBlueBallWinningBall(blueAwardNumber, blueBettingNumber);
		System.out.println("中奖等级为:");
		System.out.println("红球:"+redWinningBall+",篮球:"+blueWinningBall);
	}
//	当前方法用于存放红色球和蓝色球的开奖号
	public List<Integer> getRedAwardNumber()
	{
		List<Integer> redAwardNumber=new ArrayList<Integer>();
		Random random=new Random(10);
		while(redAwardNumber.size()<6)
		{
//			生成一个1-33 之间的任意一个随机数字,作为红色球的开奖号
			Integer redNumber=random.nextInt(32)+1;
			if (redAwardNumber.contains(redNumber)) 
			{
				continue;
			}
			redAwardNumber.add(redNumber);
		}
		Collections.sort(redAwardNumber);
		System.out.println("红色球的开奖号依次为:");
		for (Integer integer : redAwardNumber) {
			System.out.print(integer+" ");
		}
		System.out.println();
		return redAwardNumber;
	}
//	获得蓝色球的开奖号
	public List<Integer> getBlueAwardNumber()
	{
		Random random=new Random(8);
//		获取1-16当中的任意一个数字作为开奖号
		Integer buleNumber=random.nextInt(16)+1;
		List<Integer> blueAwardNumber=new ArrayList<Integer>();
		blueAwardNumber.add(buleNumber);
		System.out.println("蓝色球当中的开奖号为:");
		System.out.println(blueAwardNumber.get(0));
		return blueAwardNumber;
	}
//	获得用户所购买的红色球投注号码betting(投注)
	public List<Integer> getRedBettingNumber()
	{
		List<Integer> redBettingNumber=new ArrayList<Integer>();
//		当不设定随机数种子的时候每一次所进行生成的随机数对象都是不相同的
		Random random=new Random();
		while(redBettingNumber.size()<6)
		{
//			生成一个1-33 之间的任意一个随机数字,作为用户的投注号
			Integer redNumber=random.nextInt(32)+1;
			if (redBettingNumber.contains(redNumber)) 
			{
				continue;
			}
			redBettingNumber.add(redNumber);
		}
		Collections.sort(redBettingNumber);
		System.out.println("红色球的投注号依次为:");
		for (Integer integer : redBettingNumber) {
			System.out.print(integer+" ");
		}
		System.out.println();
		return redBettingNumber;
	}
//	获得蓝色球的投注号
	public List<Integer> getBlueBettingNumber()
	{
		Random random=new Random();
//		获取1-16当中的任意一个数字作为开奖号
		Integer buleNumber=random.nextInt(16)+1;
		List<Integer> blueBettingNumber=new ArrayList<Integer>();
		blueBettingNumber.add(buleNumber);
		System.out.println("蓝色球当中的投注号为:");
		System.out.println(blueBettingNumber.get(0));
		return blueBettingNumber;
	}
//	判断红色球的中奖数目
	public int getRedBallWinningBall(List<Integer> redAwardNumber,List<Integer> redBettingNumber)
	{
		int number=0;
		for(int i=0;i<redBettingNumber.size();i++)
		{
			Integer redNumber=redBettingNumber.get(i);
			if(redAwardNumber.contains(redNumber))
				number++;
		}
		System.out.println("红色球当中投注号与中奖号相同的小球数为:");
		System.out.println(number);
		return number;
	}
//	判断蓝色球的中奖数目
	public int getBlueBallWinningBall(List<Integer> blueAwardNumber,List<Integer> blueBettingNumber)
	{
		int number=0;
		for(int i=0;i<blueBettingNumber.size();i++)
		{
			Integer blueNumber=blueBettingNumber.get(i);
			if(blueAwardNumber.contains(blueNumber))
				number++;
		}
		System.out.println("蓝色球当中投注号与中奖号相同的小球数为:");
		System.out.println(number);
		return number;
	}
}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值