Java基础小项目练习01

双色球项目

1. 项目需求

双色球投注区分为红色球号码区和蓝色球号码区, 
红色球号码区由1-33共33个号码组成,蓝色球号码区由1-16共16个号码组成。 
投注时选择6个红球号码和1个蓝球号码组成一注进行单式投注。
 一等奖:投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖; 
 二等奖:投注号码与当期开奖号码中的6个红色球号码相同,即中奖; 
 三等奖:投注号码与当期开奖号码中的任意5个红色球号码和1个蓝色球号码相同,即中奖; 
 四等奖:投注号码与当期开奖号码中的任意5个红色球号码相同,或与任意4个红色球号码
 和1个蓝色球号码相同,即中 奖;
 五等奖:投注号码与当期开奖号码中的任意4个红色球号码相同,或与任意3个红色球号码
 和1个蓝色球号码相同,即中 奖;
 六等奖:投注号码与当期开奖号码中的1个蓝色球号码相同,即中奖。 
 要求:
 	1.模拟上述双色球操作。 
 	2.实现机选中奖号码功能。

2. 界面显示

在这里插入图片描述在这里插入图片描述

3. 代码实现

import java.util.*;
class 双色球 
{
	static int[] ticket=new int[7];   //存储用户选择的号
	static int[] rw=new int[7];   //存储随机生成的号
	public static void main(String[] args) 
	{
		int s=0;	//控制循环进入那一个功能,或者跳出循环
		while (s!=3)
		{
			System.out.println("=========欢迎进入双色球彩票系统=========");
			System.out.println("\t\t1.购买彩票");
			System.out.println("\t\t2.查看开奖");
			System.out.println("\t\t3.退出");
			System.out.println("=============请输入您的选择=============");
			Scanner sc=new Scanner(System.in);
			s=sc.nextInt();
			if (s==1)
			{
				System.out.println("现在进入购买彩票功能");
				buyTicket();
			}else if (s==2)
			{
				System.out.println("现在进入的是开奖功能");
				reward();
			}
		}
	}
	public static void buyTicket(){
		//用户选择号码
		Scanner sc=new Scanner(System.in);
		for (int i=0; i<ticket.length; i++)
		{
			if (i==ticket.length-1)
			{
				System.out.println("请输入蓝球的数值");
				int sc1=sc.nextInt();
				if (sc1>=1 && sc1<=16)
				{
					ticket[i]=sc1;
				}else{
					System.out.println("请您输入1-16的号码");
					i-=1;
				}
			}else{
				System.out.println("请输入第"+(i+1)+"个红球的数字");
				int sc2=sc.nextInt();
				//控制选择号码的范围
				if (sc2>=1 && sc2<=33)
				{
					boolean flag=false;
					for (int k=0; k<i; k++)
					{
						if (ticket[k]==sc2)
						{
							flag=true;
							break;
						}
					}
					//控制红球不能有重复
					if (flag)
					{
						System.out.println("请不要输入重复的号码");
						i-=1;
					}else{
						ticket[i]=sc2;
					}
				}else{
					System.out.println("请您输入1-33的号码");
					i-=1;
				}
			}
		}
		System.out.println("购买成功,您购买的彩票号码是:");
		showTicket(ticket); //显示用户购买的号码
	}
	public static void showTicket(int[] ticket){
		//显示用户购买的号码
		for (int i=0; i<ticket.length; i++)
		{
			System.out.print(ticket[i]+"\t");
		}
		System.out.println();
	}
	public static void reward(){
		//查看是否中奖
		System.out.println();
		makeRw();	//生成随机的彩票号码
		System.out.println("您买的号码是:");
		showTicket(ticket);
		System.out.println("中奖号码是:");
		showTicket(rw);  //显示中奖的号码
		int count=0;	//记录用户选择号码与中奖号码相同的个数
		for (int i=0; i<rw.length-1; i++)
		{
			for (int j=0; j<ticket.length-1; j++)
			{
				if (rw[i]==ticket[j])
				{
					count+=1;
				}
			}
		}
		boolean flag=false;	//标志用户选择蓝球是否与中奖号蓝球相同
		if (ticket[ticket.length-1]==rw[rw.length-1])
		{
			flag=true;
		}
		//分类中奖的等级
		if (flag && count==6)
		{
			System.out.println("恭喜您,中一等奖");
		}else if (count==6)
		{
			System.out.println("恭喜您,中二等奖");
		}else if (flag && count==5)
		{
			System.out.println("恭喜您,中三等奖");
		}else if (count==5 || (count==4 && flag))
		{
			System.out.println("恭喜您,中四等奖");
		}else if (count==4 || (count==3 && flag))
		{
			System.out.println("恭喜您,中五等奖");
		}else if (flag)
		{
			System.out.println("恭喜您,中六等奖");
		}else{
			System.out.println("很遗憾,您这次没有中奖");
		}

	}
	public static void makeRw(){
		//随机生成中奖号码
		Random rd=new Random();
		for (int i=0; i<rw.length-1;i++ )
		{
			boolean flag=false;
			int a=rd.nextInt(33)+1;
			for (int k=0; k<i; k++)
			{
				if (rw[k]==a)
				{
					flag=true;
					break;
				}
			}
			if (flag)
			{
				i-=1;
			}else{
				rw[i]=a;
			}
		}
		rw[rw.length-1]=rd.nextInt(16)+1;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值