Java实战入门之双色 * 票小游戏
作者:小小龙o0 发布时间:2023-05-12 04:07:13
标签:java,双色球,彩票,小游戏
一、项目需求
二、项目思路
1、菜单制作
2、中奖号码生成 getNumber (随机数 Math.random)
3、购买号码和中奖号码比对 生成中奖等级
三、完整代码
package com.test.mxl;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int[] balls = new int[7];
int count = 0;
boolean isBuy = false;//默认情况下没有买彩票
while (true){
System.out.println("------------欢迎进入双色 * 票系统----------------");
System.out.println("1、购买彩票");
System.out.println("2、查看开奖");
System.out.println("3、退出");
System.out.println("请选择你要完成的功能");
Scanner sc = new Scanner(System.in);
int choice = sc.nextInt();
switch (choice){
case 1:
System.out.println("双色球系统》》购买彩票");
System.out.println("请选择你要购买几注:");
count = sc.nextInt();
//定义一个变量 如果每购买提示不能直接开奖
for (int i = 1; i <= 7; i++) {
if(i != 7){//录入红色
System.out.println("请录入第"+i+"个红球");
balls[i-1] = sc.nextInt();
}else { //录入蓝色
System.out.println("请录入一个蓝色球");
balls[i-1] = sc.nextInt();
}
}
System.out.println("您购买了"+count+"注彩票,一共消费了"+count*2+"元钱,您购买的彩票号码为: ");
//遍历数组
for (int num: balls) {
System.out.print(num+"\t");
}
System.out.println();
isBuy = true;
break;
case 2:
if (isBuy){
System.out.println("双色球系统》》查看开奖");
//1 生成
int[] luckBalls= getNumber();
//2 对比
int level = getlevel(balls,luckBalls);
//3 显示结果
System.out.println("本期中奖号码为:"+luckBalls[0]+" "+luckBalls[1]+" "+luckBalls[2]+" "+luckBalls[3]+" "+luckBalls[4]+" "+luckBalls[5]+" "+luckBalls[6]);
switch (level){
case 1:
System.out.println("恭喜您,中了一等奖,1注奖金500万,您一共获得: "+500*count+"万元");
break;
case 2:
System.out.println("恭喜您,中了二等奖,1注奖金100万,您一共获得: "+100*count+"万元");
break;
case 3:
System.out.println("恭喜您,中了三等奖,1注奖金30万,您一共获得: "+30*count+"万元");
break;
case 4:
System.out.println("恭喜您,中了四等奖,1注奖金5万,您一共获得: "+5*count+"万元");
break;
case 5:
System.out.println("恭喜您,中了五等奖,1注奖金2000千元,您一共获得: "+2000*count+"元");
break;
case 6:
System.out.println("恭喜您,中了六等奖,1注奖金5元,您一共获得: "+5*count+"元");
break;
}
}else {
System.out.println("对不起,请先购买彩票");
}
break;
case 3:
System.out.println("双色球系统》》退出");
return;
}
}
}
public static int[] getNumber(){
int[] getNumber = new int[7];
//随机数生成:红球 1-33,篮球1-16, Math.random() --[0.0,1.0) 可乘数;
for (int i = 1; i <= 7; i++) {
if(i != 7){
getNumber[i-1] = (int)(Math.random()*33 + 1);
}else {
getNumber[i-1] = (int)(Math.random()*16 + 1);
}
}
return getNumber;
}
//比对是否中奖,中几等奖
public static int getlevel(int[] balls,int[] luckBalls){
//设置两个计数 红球和篮球 每相同一个就加一次。
int level = 0;
int redCount = 0;
int blueCount = 0;
//遍历购买的号码
for (int i = 0; i < 7; i++) {
if (i != 6){
for (int j = 0; j < 6; j++) {
if (balls[i] == luckBalls[j]){
redCount++;
}
}
}else { //篮球中奖
if(balls[6] == luckBalls[6]){
blueCount++;
}
}
}
//输出比对结果
//根据红蓝球相等数量得到level结果
if(redCount == 6 && blueCount == 1){
level = 1;
}
else if(redCount == 6 ){
level = 2;
}
else if(redCount == 5 && blueCount == 1){
level = 3;
}
else if(redCount == 5 || (redCount == 4 && blueCount==1)){
level = 4;
}
else if (redCount == 4 || (redCount == 3 && blueCount==1)){
level = 5;
}else {
level = 6;
}
return level;
}
}
四、功能演示
来源:https://blog.csdn.net/weixin_46777885/article/details/116023186


猜你喜欢
- 摘要:其实两种方法归结起来看还是一种,都是利用Thread的构造器进行创建,区别就是一种是无参的,一种是有参的。一、继承Thread线程类:
- 前言说真的,平常看源码都是自己看完自己懂,很少有写出来的冲动。但是在写算法的时候,经常用到java中各种集合,其中也比较常用到remove方
- 本文实例为大家分享了SpringBoot使用POI进行Excel下载的具体代码,供大家参考,具体内容如下使用poi处理Excel特别方便,此
- 本文实例为大家分享了QT实现简单计算器功能的具体代码,供大家参考,具体内容如下效果图:新建工程,创建类MainWindow,基类是QMain
- 本文实例讲述了C#操作windows系统进程的方法。分享给大家供大家参考。具体如下:这段代码演示了如何根据进程名关闭进程和启动进程/// &
- 线程(Thread)是并发编程的基础,也是程序执行的最小单元,它依托进程而存在。一个进程中可以包含多个线程,多线程可以共享一块内存空间和一组
- 1 引入 pom 包<dependency> <groupId>io.github.res
- 本文实例为大家分享了ActionBar实现tab导航效果的具体代码,供大家参考,具体内容如下先来说一说基础知识:一、基本使用方法1.获取Ac
- 按照官方文档进行的配置:快速开始|mybatis-plus引入依赖:<!-- 引入mybatisPlus --> &
- 数据层测试事务回滚pom.xml导入对应的一些坐标,mysql,Mp,等<dependency> &
- String的字符串是不可变的,StringBuffer和StringBuilder是可变的String:是字符常量,适用于少量的字符串操作
- 1. 只有public的property能显示出来,可以通过BrowsableAttribute来控制是否显示,通过CategoryAttr
- 前段时间摸索了java调用matlab东西,不说学的有多深,也算有结果了,达到目的了。也即用java程序可以调用matlab中函数了。&nb
- 熟知:什么是传感器: 所谓传感器能够探测如光、热、温度、重力、方向 等等的功能!Androi
- (一)什么是微服务网关后端写完所有的微服务之后,最终是要交给前端去调用。我们都知道每个微服务都有各自的端口号,如果前端直接通过IP加端口的方
- 现在许多系统的注册、登录或者发布信息模块都添加的随机码功能,就是为了避免自动注册程序或者自动发布程序的使用。验证码实际上就是随机选择一些字符
- 最近学了很多的知识,脑容量小,记不清,还是得做做练习!今天就做了一个扑克牌的练习首先呢..这个逻辑一定要非常清楚,我们要想做出一副扑克牌,必
- 1.编写核心类MainApp:package com.yiidian.gson;import com.google.gson.Gson;im
- 什么是 MyBatis?MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 J
- 本文主要讲解如何通过RabbitMQ实现定时任务(延时队列)环境准备需要在MQ中进行安装插件 地址链接插件介绍地址:https://www.