scau:面向对象java实验作业1-2 猜数字游戏

news2024/12/23 12:09:06
题目名称实验1-2 猜数字游戏
题目关键字数据类型 基本输入输出 控制语句 方法
题目录入时间2022/10/10 11:01:37
题目内容

使用Java程序,项目名称:GuessNumberGame,类根据自己需要定义。

程序开始运行后,允许玩家进行多次猜数字的游戏。

每次猜数字的过程如下:

1. 程序随机产生一个0-9之间的整数。

2. 要求玩家从键盘输入自己猜的数字。

3. 程序检查玩家输入的数字,并根据检查结果进行如下提示:

l  如果用户猜对了,则提示:恭喜你,猜对了。

l  如果用户猜错了,则提示:你猜的数字太(大或小)了。

4. 一次游戏结束条件有2种情况:

l  玩家连续3次没有猜对给定数字,则提示:游戏失败。

l  玩家在3次机会之内猜对了给定的数字,则提示:游戏成功。

5. 每次游戏结束时,询问用户是否继续新的游戏。

l  如果用户选择继续,则开始新一次游戏;

l  否则输出:你共进行了XXX次游戏,成功XXX次,失败XXX次。然后结束程序运行。

下面是一个运行示例:

提交要求:包含源程序文件的JAR。

package practice;
import java.util.Scanner;
import java.util.Random;

public class Cai_shuzi {
    private static int time = 0;
    private static int correctGuesses = 0;
    private static int wrongGuesses = 0;
    private static Scanner scanner = new Scanner(System.in);  // 移出循环外

    public static void main(String[] args) {
        startGame();
    }

    // 启动游戏
    public static void startGame() {
        while (true) {
            time++;
            System.out.println("第" + time + "次游戏,程序生成了一个[0,9]之间的数字.");
            playRound(3);

            System.out.print("你还要继续游戏吗?(Y继续/N退出):");
            char in = scanner.next().charAt(0);
            if (in != 'Y' && in != 'y') {
                endGame();
                break;
            }
        }
    }

    // 进行单轮游戏
    public static void playRound(int chances) {
        Random random = new Random();
        int answer = random.nextInt(10);
        boolean guessedCorrectly = false;

        while (chances > 0) {
            System.out.print("你还有" + chances + "次机会,输入你猜的数字:");
            int input = scanner.nextInt();

            if (input == answer) {
                System.out.println("恭喜你,猜对了!");
                guessedCorrectly = true;
                correctGuesses++;
                break;
            } else if (input < answer) {
                System.out.println("你猜的数字太小了!");
            } else {
                System.out.println("你猜的数字太大了!");
            }
            chances--;
        }

        if (!guessedCorrectly) {
            wrongGuesses++;
            System.out.println("本次游戏失败!正确数字是:" + answer);
        }
    }

    // 游戏结束时的统计
    public static void endGame() {
        System.out.println("你共进行了" + time + "次游戏,成功 " + correctGuesses + " 次,失败 " + wrongGuesses + " 次.");
        scanner.close();  // 结束时再关闭 Scanner
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2204039.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++从入门到起飞之——(multi)set与(multi)map的的使用 全方位剖析!

&#x1f308;个人主页&#xff1a;秋风起&#xff0c;再归来~&#x1f525;系列专栏&#xff1a;C从入门到起飞 &#x1f516;克心守己&#xff0c;律己则安 目录 1. 序列式容器和关联式容器 2. set系列的使⽤ 2.1 set和multiset参考⽂档 2.2 set类的介绍 2.3 se…

Effective C++笔记之二十四:stack overflow

溢出&#xff08;Stack Overflow&#xff09;是指程序运行过程中&#xff0c;栈空间被耗尽&#xff0c;导致无法继续分配栈内存的错误。C程序中&#xff0c;栈用于存储函数调用的局部变量、返回地址、函数参数等。当栈空间耗尽时&#xff0c;会引发栈溢出&#xff0c;通常导致程…

java的Maven项目的ehcache缓存学习记录

java的ehcache缓存学习记录 第1步:pom.xml增加ehcache的依赖项 <!--ehcache缓存--><dependency><groupId>net.sf.ehcache</groupId</

Renesas R7FA8D1BH (Cortex®-M85) 上超声波测距模块(HC-SR04)驱动开发

目录 概述 1 软硬件 1.1 软硬件环境信息 1.2 开发板信息 1.3 调试器信息 2 硬件架构 2.1 硬件框架结构 2.2 测距模块&#xff08;HC-SR04&#xff09;介绍 2.2.1 HC-SR04特性 2.2.2 HC-SR04操作时序 2.2.3 计算距离 3 软件实现 3.1 FSP配置项目 3.1.1 配置IO口的外…

springboot 整合spring ai实现 基于知识库的客服问答

rag 需求产生的背景介绍&#xff1a; 在使用大模型时&#xff0c;常遇到的问题之一是模型可能产生幻觉&#xff0c;即生成的内容缺乏准确性。此外&#xff0c;由于大模型不直接访问企业的专有数据&#xff0c;其响应可能会显得泛泛而谈&#xff0c;不够精准或具体&#xff0c;…

Vue包的安装使用

文章目录 vue介绍一、灵活易用1.渐进式框架2.简洁的语法 二、高效的响应式系统1.数据驱动2.响应式原理 三、强大的组件化开发1.组件化思想2.组件通信 四、丰富的生态系统1.插件和库2.社区支持 安装依赖删除新增文件夹components设置(1)home.vue(2)data.vue(3)zero.vue router配…

Visual Studio Code 中通过鼠标滚轮调整字体大小并使用 Ctrl+W 关闭文档窗口【最详细】

1. 使用鼠标滚轮调整字体大小 希望通过鼠标滚轮与 Ctrl 键组合来放大或缩小编辑器的字体大小&#xff0c;按照以下步骤进行设置&#xff1a; 打开 Visual Studio Code。 进入设置页面&#xff1a; 点击左下角的齿轮图标&#xff0c;然后选择“设置”。 或者直接使用快捷键 …

最新Prompt预设词指令教程大全ChatGPT、AI智能体(300+预设词应用)

使用指南 直接复制在AI工具助手中使用&#xff08;提问前&#xff09; 可以前往已经添加好Prompt预设的AI系统测试使用&#xff08;可自定义添加使用&#xff09; SparkAi系统现已支持自定义添加官方GPTs&#xff08;对专业领域更加专业&#xff0c;支持多模态文档&#xff0…

科研绘图系列:R语言绘制中国地理地图

文章目录 介绍加载R包导入数据图a图b图c图d系统信息介绍 文章提供了绘制图a,图b和图d的数据和代码。该图展示了不同省份的物种分布情况。 加载R包 library(geojsonsf) library(sf) library(ggplot2) library(RColorBrewer) library(ggspatial) library(</

C++AVL树详解

什么是AVL树 AVL树是最先发明的⾃平衡⼆叉查找树&#xff0c;AVL是⼀颗空树&#xff0c;或者具备下列性质的⼆叉搜索树&#xff1a;它的 左右⼦树都是AV树&#xff0c;且左右⼦树的⾼度差的绝对值不超过1。AVL树是⼀颗⾼度平衡搜索⼆叉树&#xff0c; 通过控制⾼度差去控制平衡…

python的介绍以及基本操作

python的介绍 &#xff08;1&#xff09;python是一门编程语言&#xff08;比如&#xff1a;java、c、c、.net、go等都是编程语言&#xff09; python 也是胶水语言 &#xff08;2&#xff09;python是一门面向对象&#xff0c;解释型的动态类型的编程语言&#xff0c; a、什…

select、epoll相关

select函数&#xff1a; int select(int nfds, // 监控的文件描述符集里最大文件描述符加1fd_set *readfds, // 监控有读数据到达文件描述符集合&#xff0c;引用类型的参数fd_set *writefds, // 监控写数据到达文件描述符集合&…

【零散技术】一分钟完成Odoo悬挂网站备案号

序言:时间是我们最宝贵的财富,珍惜手上的每个时分 目录 1.激活开发者模式 2.修改视图 Odoo套上域名是常见的需求&#xff0c;当我们兴致勃勃的做好 域名申请&#xff0c;网站备案&#xff0c;域名解析&#xff0c;SSL证书申请&#xff0c;Nginx转发后&#xff0c;就可以通过域…

横向移动与痕迹清理

目录 横向移动漏洞利⽤服务利⽤IPC横向计划任务横向计划任务横向WMI横向SMB横向DCOM横向WinRM横向PSEXEC横向其他⽅式横向 软件部署利⽤GPO组策略横向 密码喷洒密码策略检查喷洒主机喷洒⽤户名喷洒密码喷洒hash喷洒服务 痕迹清除OPSEC清除webshell清除隧道⼯具清除落地样本清除…

由于找不到krpt.dll,无法继续执行代码该怎么办?总结三种简单有效修复方法

1. krpt.dll 简介 1.1 定义 krpt.dll 是一个 Windows 动态链接库文件&#xff08;Dynamic Link Library&#xff09;&#xff0c;这种类型的文件包含可由多个应用程序共享的函数和资源。它是Windows操作系统中的一个重要组件&#xff0c;对于系统的正常运行起着至关重要的作用…

模块化沙箱的功能特点

模块化沙箱是一种高灵活性和高扩展性的数据安全产品&#xff0c;通过选择不同的沙箱模块&#xff0c;满足不同的安全需求。 同时&#xff0c;深信达模块化沙箱&#xff0c;根据企事业单位各类国密标准需求&#xff0c;合理转换沙箱模式&#xff0c;满足不同场景、不同类型的数…

TK东南亚、美区、英区产品投放内容该如何选择?

TikTok是抖音在海外市场的版本&#xff0c;已经成为全球最受欢迎的短视频应用之一&#xff0c;并被视为品牌国际化的重要平台。卖家若能有效利用 TikTok&#xff0c;有望在全球范围内提升企业知名度和产品销量&#xff0c;吸引大量的粉丝和订单。那么&#xff0c;在不同国家&am…

每日论文13-18TCAS2数控调谐电感的V波段CMOS压控振荡器

《A V-Band CMOS VCO With Digitally-Controlled Inductor for Frequency Tuning》 18TCAS2 广东省毫米波与太赫兹重点实验室 有个手头上的东西感觉粗调电感可能会比粗调电容好一些&#xff0c;所以拜读一下老板18年的这篇TCAS2&#xff0c;这感觉是个偏理论一点的工作。 首…

哇塞!FLUX 杠上 Midjourney,你选谁?

大家和大家聊聊最近超火的 AI 绘图工具 ——Black Forest Labs 的 FLUX 和一直备受青睐的 Midjourney。 来源&#xff1a;blackforestlabs.ai FLUX 这套开源的文本转图像模型一经推出&#xff0c;就掀起了不小的波澜。好多设计同行都对它充满了好奇与期待&#xff0c;这无疑给…

封装、继承、抽象类

面向对象共有三个特征&#xff1a;封装&#xff0c;继承&#xff0c;多态。 封装 封装表现&#xff1a; &#xff08;1&#xff09;方法就是一个最基本封装体。 &#xff08;2&#xff09;类其实也是一个封装体。 封装的好处&#xff1a; &#xff08;1&#xff09;提高…