Java实现猜数字小游戏详解流程

 更新时间:2021年10月22日 08:58:14   作者:Dark And Grey  
猜数字是兴起于英国的益智类小游戏,起源于20世纪中期,一般由两个人或多人玩,也可以由一个人和电脑玩。游戏规则为一方出数字,一方猜,今天我们来用Java把这个小游戏写出来练练手

猜数字游戏

系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 "低 了",
如果输入的数字比该随机数大, 提示 "高了" , 如果输入的数字和随机数相等, 则提示 "猜对了

整理思路

1. 我们玩游戏的时候,都有开始游戏和退出游戏
2. 其次,它要生成一个随机数,如果是固定值,哪有什么意思?
3. 再者,我们要输入数字,根据它反馈的情况进行判断和猜测数字的大小
4. 但是我们不可能说一次就判断成功,所以我们需要一个循环输入
5. 最后,猜对了数字之后,我们需要退出游戏模式,重新回到菜单界面,让用户选择玩还是不玩,你总不能说让别人一直玩,退不出来吧。那这游戏挺砸吧的

现在我们正式开始制作

import java.util.Random;
import java.util.Scanner;

public class LogicControl {

    // 注意 自定函数 menu 和 game的位置,不需要放在 main 方法的前面,因为 java 里 是没法函数声明的说法,要用就直接调用的
    public static void menu(){// 游戏菜单选择界面
        System.out.println("*****************");
        System.out.println("**** 1.Play  ****");
        System.out.println("**** 0.Exit  ****");
        System.out.println("*****************");
    }
    public static void game(){// 游戏运行程序
        Scanner scanner = new Scanner(System.in);//为生成一个随机值,做准备
        Random random = new Random();//默认随机种子是系统时间,提示 在括号里加上数字,它生成一个指定数,所以最好不要画蛇添足
        int toGuess = random.nextInt(100);// 生成 100 以内的数字
        while(true){// 死循环,不猜对不退出
            System.out.println("请输入你所猜的数字");
            int guess = scanner.nextInt();
            if(guess < toGuess){
                System.out.println("猜小了");
            }else if(guess > toGuess){
                System.out.println("猜大了");
            }else{// guess == toGuess
                System.out.println("猜对了");
                break;//猜对了,才有权力退出, 当然你把游戏插卡拿走,强制退出游戏,我能拿你怎么办?
            }// 图55
        }
    }

    public static void main(String[] args) {// 首先,主体 类和方法 要先写好
        Scanner scanner = new Scanner(System.in);// 为我们输入数据做好准备
        int input = 0;// 输入变量初始化
        do{
            menu();// 玩家进入游戏,一开始肯定是游戏界面
            System.out.println("请选择:");// 根据我们的游戏游戏界面选项,决定输入的值
            input = scanner.nextInt();// 输入变量更新
            switch(input){// 使用switch 语句 进行,对输入数据的判断
                case 1:{//如果是 1, 就是play 玩游戏
                    game();//使用 game 自定义函数,图54
                    break;// 游戏结束,退出游戏,回到游戏主界面. 图56
                } case 0:{// 如果是 0,退出程序,不玩了!
                    System.out.println("退出游戏");
                    break;// 图 57
                } default:{// 如用用户输入的数据,不是我指定的数据,则我们需要反馈用户信息,让用户重新选择
                    System.out.println("输入错误,请重新输入");//图 53
                    break;// 注意 break 是可以 switch 和用,break 现在是终止switch 语句,而不是循环语句
                    // 这一点是 break的特殊用法
                }

            }
        }while (input>0);// 条件判断,如果输入0和负数,执行完上面的程序后,退出循环(这是do while 的特点,先干再说),结束游戏
        // 如果输入输入一个正数,则循环继续,只不过如果该正数不为1是不能进行游戏的,系统会告知你输入错误,请重新选择

    }
}

图1

在这里插入图片描述

图2

在这里插入图片描述

图3

在这里插入图片描述

图4

在这里插入图片描述

图5

在这里插入图片描述

到此这篇关于Java实现猜数字小游戏详解流程的文章就介绍到这了,更多相关Java 猜数字内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java中单例模式讲解

    java中单例模式讲解

    这篇文章主要介绍了java中单例模式,本文通过简单的案例,讲解了该模式在java中的使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Java equals 方法与hashcode 方法的深入解析

    Java equals 方法与hashcode 方法的深入解析

    面试时经常会问起字符串比较相关的问题,比如:字符串比较时用的什么方法,内部实现如何?hashcode的作用,以及重写equal方法,为什么要重写hashcode方法?以下就为大家解答,需要的朋友可以参考下
    2013-07-07
  • Java多线程的临界资源问题解决方案

    Java多线程的临界资源问题解决方案

    这篇文章主要介绍了Java多线程的临界资源问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

    SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

    LiteFlow 是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大家介绍SpringBoot集成LiteFlow实现轻量级工作流引擎,感兴趣的朋友一起看看吧
    2025-06-06
  • 分析并发编程之LongAdder原理

    分析并发编程之LongAdder原理

    LongAdder类是JDK1.8新增的一个原子性操作类。AtomicLong通过CAS算法提供了非阻塞的原子性操作,相比受用阻塞算法的同步器来说性能已经很好了,但是JDK开发组并不满足于此,因为非常搞并发的请求下AtomicLong的性能是不能让人接受的
    2021-06-06
  • Spring(一):IOC如何推导和理解

    Spring(一):IOC如何推导和理解

    下面小编就为大家带来一篇详谈Spring对IOC的理解(推荐篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-07-07
  • java线程死锁代码示例

    java线程死锁代码示例

    这篇文章主要介绍了java线程死锁代码示例,分享了一个简单线程死锁的例子,需要的朋友可以参考下。
    2017-11-11
  • idea SpringBoot+Gradle环境配置到项目打包

    idea SpringBoot+Gradle环境配置到项目打包

    Gradle是一个基于Java应用的项目自动化构建工具,本文介绍了在IDEA中创建Spring Boot Gradle项目,项目配置包括init.gradle和settings.gradle,感兴趣的可以了解一下
    2024-11-11
  • Jexcel实现按一定规则分割excel文件的方法

    Jexcel实现按一定规则分割excel文件的方法

    这篇文章主要介绍了Jexcel实现按一定规则分割excel文件的方法,涉及java操作Excel文件的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • Java接收xml格式参数转为json的方法

    Java接收xml格式参数转为json的方法

    文章主要介绍了如何使用JAXB将XML格式的参数接收并转换为Java实体类,然后将实体类转换为JSON格式,文中提到在实体类中使用`@XmlElement`和`@JsonProperty`注解的重要性,以及如何处理复杂的XML结构
    2024-11-11

最新评论