java双色球彩票购买及查询系统小游戏

双色球彩票购买及查询系统

项目需求

双色球投注区分为红色球号码区和蓝色球号码区,红色球号码区由1-33共33个号码组成,蓝色球号码区由1-16共16个号码组成。投注时选择6个红球号码和1个蓝球号码组成一注进行单式投注,每注金额2元。
一等奖:投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖;
二等奖:投注号码与当期开奖号码中的6个红色球号码相同,即中奖;
三等奖:投注号码与当期开奖号码中的任意5个红色球号码和1个蓝色球号码相同,即中奖;
四等奖:投注号码与当期开奖号码中的任意5个红色球号码相同,或与任意4个红色球号码和1个蓝色球号码相同,即中奖;
五等奖:投注号码与当期开奖号码中的任意4个红色球号码相同,或与任意3个红色球号码和1个蓝色球号码相同,即中奖;
六等奖:投注号码与当期开奖号码中的1个蓝色球号码相同,即中奖。

import java.util.Arrays;
import java.util.Scanner;
public class GameDemo {
	static Scanner input = new Scanner(System.in);
	public static void main (String[] args) {
		int count = 0; // 用于保存购买彩票注数
		int[] arr = new int[7];  // 保存购买彩票的号码
		boolean isBuy = false; // 判定是否购买彩票,true代表已购买,false代表未购买。
		int price = 2; // 彩票单价
		while(true){
			System.out.println("****欢迎进入双色球彩票购买系统****");
			System.out.println("\t1.购买彩票");
			System.out.println("\t2.查看开奖");
			System.out.println("\t3.退出");
			System.out.println("******************************");
			System.out.print("请按编号选择菜单:");
			int num = input.nextInt();
			switch(num){
				case 1 :
					System.out.println("****进入彩票购买系统****");
					buyNumber(arr); //购买号码
					count = buyNumber(count, isBuy, arr, price); 
					isBuy = true; //代码执行到此处确定已购买
					break;
				case 2 :
					System.out.println("********进入查看开奖系统********");
					inquiry(count, arr, isBuy);
					break;
				case 3 :
					System.out.println("***********退出系统************");
					return; //中断循环以退出系统
				default :
					System.out.println("请输入正确的编号进入系统!");
					break;
			}
		}
	}
	/**
	 * 计算并输出显示购买及消费信息
	 * @param count 保存购买彩票注数
	 * @param isBuy	判定是否已购买彩票
	 * @param arr 保存购买彩票的号码
	 * @param price	彩票单价,用于计算消费金额
	 * @return	返回购买注数
	 */
	public static int buyNumber(int count,boolean isBuy,int[] arr,int price){
		while(true){
			System.out.print("请输入需要购买的注数:");
			count = input.nextInt();
			if(count > 0){
				System.out.println("您购买了" + count + "注,一共消费了" + count * price + "元钱,所选号码为:");
				System.out.println(Arrays.toString(arr));
				return count;
			}
			else{
				System.out.println("请输入正确的数量!");
			}
		}
	}
	/**
	 * 用于记录并判断购买的号码
	 * @param arr 用于保存选购的号码
	 */
	public static void buyNumber(int[] arr){
		
		for(int i = 0; i < arr.length; i++){
			if(i < arr.length - 1){
				System.out.print("请输入第" + (i + 1) + "个红色球(1-33):");
				arr[i] = input.nextInt();
				if(arr[i] <= 0 || arr[i] > 33){
					System.out.println("超出范围,请输入有效范围的数(1-33)!");
					i--;
				}
			}
			else{
				System.out.print("请输入最后一个蓝色球(1-16):");
				arr[i] = input.nextInt();
				if(arr[i] <= 0 || arr[i] > 16){
					System.out.println("超出范围,请输入有效范围的数(1-16)!");
					i--;
				}
			}
		}
	}
	/**
	 * 判断是否购买及查询购买信息
	 * @param count	记录否买注数
	 * @param arr	购买的号码
	 * @param isBuy	判断是否已购买
	 */
	public static void inquiry(int count, int[] arr,boolean isBuy){
		if(isBuy){
			System.out.println("您一共买了" + count + "注,所选号码为:");
			System.out.println(Arrays.toString(arr));
			int[] luckNumber = getLuckNumber();
			System.out.println("当前中将号码为:");
			System.out.println(Arrays.toString(luckNumber));
			getNumberComparison(arr, luckNumber);
		}
		else{
			System.out.println("您还没有购买彩票,请购买后查询!");
		}
	}
	/**
	 * 用于随机生成开奖号码
	 * @return 返回随机生成的号码
	 */
	public static int[] getLuckNumber(){
		int[] luckNumber = new int[7];
		for(int i = 0; i < luckNumber.length; i++){
			if(i < luckNumber.length -1){
				luckNumber[i] = (int)(Math.random()*33)+1;
			}
			else{
				luckNumber[i] = (int)(Math.random()*16)+1;
			}
		}
		return luckNumber;
	}
	/**
	 * 对比购买的号码和开奖号码,判断中了几等奖
	 * @param arr 购买的号码
	 * @param luckNumber 开奖的号码
	 */
	public static void getNumberComparison(int arr[], int luckNumber[]){
		int redBall = 0; // 用于记录红球号码与开奖号码相同数
		int blueBall = 0; // 用于记录🏀号码与开奖号码相同数
		for(int i = 0; i < arr.length - 1; i++){
			for(int x = 0; x <luckNumber.length - 1; x++){
				if(arr[i] == luckNumber[x]){
					redBall++;
				}
				else if(arr[i] != luckNumber[x]){
					redBall += 0;
				}
			}
		}
		if(arr[arr.length-1] == luckNumber[luckNumber.length-1]){
			blueBall++;
		}
		System.out.println(redBall);
		System.out.println(blueBall);
		if(redBall == 6 && blueBall == 1){
			System.out.println("恭喜您中了一等奖!");
		}else if(redBall == 6 && blueBall == 0){
			System.out.println("恭喜您中了二等奖!");
		}else if(redBall == 5 && blueBall == 1){
			System.out.println("恭喜您中了三等奖");
		}else if(redBall == 5 || redBall == 4 && blueBall == 1){
			System.out.println("恭喜您中了四等奖!");
		}else if(redBall == 4 || redBall == 3 && blueBall == 1){
			System.out.println("恭喜您中了五等奖!");
		}else if(redBall == 0 && blueBall == 1){
			System.out.println("恭喜您中了六等奖!");
		}else{
			System.out.println("抱歉!您没有中奖,请再接再厉!");
		}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值