Java---猜数字游戏

ops/2025/2/1 15:24:17/

本篇文章所实现的是Java经典的猜数字游戏 , 运用简单代码来实现基本功能

目录

一.题目要求

二.游戏准备

三.代码实现 


一.题目要求

随机生成一个1-100之间的整数(可以自己设置区间),提示用户猜测,猜大提示"猜大了",猜小提示"猜小了",共有5次机会,都未猜中输出"游戏失败!",用户输入[1,100]范围外的数字,输出"输入错误,游戏结束" , 若在五次机会内猜中则输出"猜对了!游戏成功!" 


二.游戏准备

使用Random类

Random 类提供了丰富的随机数生成方法,可以产生 boolean、int、long、float、byte 数组以及 double 类型的随机数,

注意:产生的随机数是伪随机数

真随机数:是通过物理现象生成的,例如掷硬币、骰子、电子元件的噪音等。这些物理现象的结果是不可预测的,因此生成的随机数也是完全随机的。真随机数通常需要专门的硬件设备来生成,成本较高,但在需要高度安全性和随机性的场景中,如密码学中的加密密钥生成,真随机数是必不可少的。---百度

伪随机数是通过算法生成的,看起来像是随机的数值。伪随机数生成器,使用一个初始值(种子)和一定的计算方法来生成随机数。只要种子和算法相同,生成的随机数序列也是相同的。因此,伪随机数实际上是可预测的,但由于其周期较长,通常在大多数应用中已经足够使用。---百度

Random类具体使用步骤:

1.Random类位于Java.util中,在使用前需要导入该包

java">import java.util.Random;

2.创建Random对象

java"> Random random = new Random();

3.使用nextInt(int bound)方法 生成随机整数

java">int random_number = random.nextInt(100);

注意: random类中生成随机整数的方法有两种  

nextInt() nextInt()   默认生成的整数范围是int类型的取值范围   
nextInt(int bound)生成[0,bound)范围的随机数(bound的是我们括号内所输入的数字)

而在本题中我们想生成一个范围在[1,100]的随机数所以我们使用第2种方法 

如果我们所输入的数字是100 , 由于右侧是开区间 , 所以真正的整数范围是[0,99] , 如果想要范围在[1,100]的整数我们可以为此范围整体加1,即为

java">int random_number = random.nextInt(100)+1;

三.代码实现 

java">import java.util.Random;
import java.util.Scanner;public class Test {public static void main(String[] args) {Random random = new Random();//默认随机种子是系统时间int random_number = random.nextInt(100)+1;Scanner scanner = new Scanner(System.in);int number=0;System.out.println("您共有五次机会猜数字,范围:[1,100]");while(true){number++;if(number>5) {System.out.println("游戏失败!");break;}System.out.println("请输入: ");int guessNumber = scanner.nextInt();if(guessNumber>100||guessNumber<1){System.out.println("输入错误,游戏结束");break;}if(guessNumber>random_number){System.out.println("猜大了");}else if(guessNumber<random_number){System.out.println("猜小了");}else{System.out.println("猜对了!游戏成功!");break;}}
scanner.close();}
}

本篇文章仅使用最简单的程序来实现猜数字小游戏大家有兴趣的可以尝试实现循环开始游戏,

我也会在后续的内容中为大家更新!


http://www.ppmy.cn/ops/154782.html

相关文章

LeetCode 跳跃类问题的解题技巧:跳跃游戏与最少跳跃数

LeetCode 跳跃类问题的解题技巧&#xff1a;跳跃游戏与最少跳跃数 在 LeetCode 中&#xff0c;有一类经典的题目是关于跳跃的&#xff0c;例如 跳跃游戏 和 跳跃游戏 II。这些问题通常要求我们判断是否能从数组的起始位置跳跃到结束位置&#xff0c;或者求得最少跳跃次数。解决…

C++ list

list需知&#xff1a; list不会出现insert迭代器失效问题 链表插入不会影响原有数据相对位置&#xff0c;且不用扩容 但是erase会导致相对数据位置移动&#xff0c;所有其erase会导致迭代器失效 list排序效率很低 不建议使用 小规模数据量可以使用&#xff0c;比较方便 此外…

Github 2025-01-31Java开源项目日报 Top10

根据Github Trendings的统计,今日(2025-01-31统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目10C项目1Kotlin项目1Bazel:快速、可扩展的多语言构建系统 创建周期:3564 天开发语言:Java协议类型:Apache License 2.0Star数量:2…

字符串,集合

String 概述 java.lang.String 类代表字符串&#xff0c;Java 程序中的所有字符串文字(例如“abc”)都为此类的对象 注意&#xff1a;字符串的内容是不会发生改变的&#xff0c;它的对象在创建后不能被更改 String是Java定义好的一个类。定义在java.lang 包中&#xff0c;所…

DDD - 领域驱动设计分层架构:构建可演化的微服务架构

文章目录 引言1. 什么是DDD分层架构&#xff1f;1.1 DDD分层架构的演变1.2 四层架构的起源与问题1.3 依赖倒置和五层架构 2. DDD分层架构的核心层次2.1 用户接口层&#xff08;User Interface Layer&#xff09;2.2 应用层&#xff08;Application Layer&#xff09;2.3 领域层…

kafka消费者详细介绍(超级详细)

文章目录 一、Kafka 消费者与消费者组1.1 Kafka 消费者&#xff08;Consumer&#xff09;概述1.1.1 消费者工作流程1.1.2 消费者的关键配置 1.2 Kafka 消费者组&#xff08;Consumer Group&#xff09;概述1.2.1 消费者组的工作原理1.2.2 消费者组的优点1.2.3 消费者组的再均衡…

Linux网络编程中的零拷贝:提升性能的秘密武器

在当今数字化时代&#xff0c;网络应用的性能至关重要。而在网络编程中&#xff0c;数据传输的效率直接影响着应用的整体性能。传统的数据传输方式往往涉及大量的数据拷贝和上下文切换&#xff0c;这在高并发、大数据量的场景下&#xff0c;会成为性能瓶颈。零拷贝技术的出现&a…

25.Word:学生成绩管理系统【8】

目录 NO1.2​ NO3 NO4.5.6 NO7.8.9​​ NO1.2 F12另存为→考生文件夹布局→页面设置对话框→纸张大小→页边距&#xff1a;上下左右→文档网格&#xff1a; NO3 布局→分隔符→分节符&#xff1a;下一页&#xff08;封面、目录、一、二、三、四&#xff09;6节双击页眉页…