热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

猜字小游戏(JAVA)

原标题:猜字小游戏(JAVA)2021.04.19题目描述:

原标题:猜字小游戏(JAVA)

2021.04.19
题目描述:
在这里插入图片描述
思路:
语法基础:StringBuilder 类似列表,可以更改元素。

package Practice;
public class tt {
public static void main(String[] args) {
String str = "banana";
System.out.println(str.indexOf文章来源站点https://www.yii666.com/('z')); // -1
System.out.println(str.indexOf('a', 2)); // 3
StringBuilder words = new StringBuilder();
for (int i = 0; i < 5; i++)
words.append('*'); // "*****"
System.out.println(words.length()); // 5
System.out.println(words.indexOf("a"));// -1
System.out.println(words.indexOf("*", 1)); // 1
words.setCharAt(3, 'a'); // "***a*"
System.out.println(words);
}
}

代码:

package Practice;
import java.util.Scanner;
public class Guess {
public static String words[] = {"banana", "telecommunication", "programming", "bupt"};
public static boolean[] guwww.yii666.comessed = new boolean[words.length]; // 判断猜过
public static int num_guessed = 0; // 猜过的单词数量
public static char keep; // 是否继续y or n
public static void main(String[] args) {
// for(int i = 0; i
Scanner scanner = new Scanner(System.in);
do{
// 随机产生要猜测的单词 ans
int index = (int) (Math.random() * words.length);
String ans = words[index];
// 再来一次时的重复检测
while(guessed[index] == true)
{
index = (int) (Math.random() * words.length);
ans = words[index];
}
// 初始化,StringBuilder类似list
StringBuilder guessedWord = new StringBuilder();
for (int i = 0; i < ans.length(); i++)
guessedWord.append('*');
int numberOfCorrectLettersGuessed = 0, numberOfMisses = 0;
// 模拟过程
while (numberOfCorrectLettersGuessed < ans.length()) {
System.out.print("(Guess) Enter a letter in word " + guessedWord
+ " > ");
String s = scanner.nextLine();
char letter = s.charAt(0);
if (guessedWord.indexOf(letter + "") >= 0) { // 猜中,但重复,不算错误次数
System.out.println("\t" + letter + " is already in the word");
} else if (ans.indexOf(letter) < 0) { // 猜错
System.out.println("\t" + letter + " is not in the word");
numberOfMisses++;
} else { // 猜中,进行标记与赋值
int k = ans.indexOf(letter);
while (k >= 0) {
guessedWord.setCharAt(k, letter);
numberOfCorrectLettersGuessed++;
k = ans.indexOf(letter, k + 1);
}
}
}
System.out.println("The word is " +www.yii666.com ans + ". You missed "
+ numberOfMisses + ((numberOfMisses <= 1) ? " time" : " times"));
guessed[index] = true;
num_guessed += 1;
if(num_guessed < words.length)
{
System.out.print("Do you want to guess for another word? Enter y or n> ");
keep = scann文章来源地址40679.htmler.nextLine().charAt(0);
}
}while(keep == 'y' && num_guessed < words.length);
if(keep == 'y')
System.out.println("Perfect!!!");
else
System.out.println("You have guessed " + num_guessed + ((num_gue文章来源地址40679.htmlssed <= 1) ? " word~" : " words~"));
}
}

效果图:
全部猜完:
在这里插入图片描述
在这里插入图片描述
中途退出:在这里插入图片描述

来源于:猜字小游戏(JAVA)


推荐阅读
  • 分享一款基于Java开发的经典贪吃蛇游戏实现
    本文介绍了一款使用Java语言开发的经典贪吃蛇游戏的实现。游戏主要由两个核心类组成:`GameFrame` 和 `GamePanel`。`GameFrame` 类负责设置游戏窗口的标题、关闭按钮以及是否允许调整窗口大小,并初始化数据模型以支持绘制操作。`GamePanel` 类则负责管理游戏中的蛇和苹果的逻辑与渲染,确保游戏的流畅运行和良好的用户体验。 ... [详细]
  • 使用Maven JAR插件将单个或多个文件及其依赖项合并为一个可引用的JAR包
    本文介绍了如何利用Maven中的maven-assembly-plugin插件将单个或多个Java文件及其依赖项打包成一个可引用的JAR文件。首先,需要创建一个新的Maven项目,并将待打包的Java文件复制到该项目中。通过配置maven-assembly-plugin,可以实现将所有文件及其依赖项合并为一个独立的JAR包,方便在其他项目中引用和使用。此外,该方法还支持自定义装配描述符,以满足不同场景下的需求。 ... [详细]
  • 本文探讨了如何利用Java代码获取当前本地操作系统中正在运行的进程列表及其详细信息。通过引入必要的包和类,开发者可以轻松地实现这一功能,为系统监控和管理提供有力支持。示例代码展示了具体实现方法,适用于需要了解系统进程状态的开发人员。 ... [详细]
  • 深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案
    深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 在Java基础中,私有静态内部类是一种常见的设计模式,主要用于防止外部类的直接调用或实例化。这种内部类仅服务于其所属的外部类,确保了代码的封装性和安全性。通过分析JDK源码,我们可以发现许多常用类中都包含了私有静态内部类,这些内部类虽然功能强大,但其复杂性往往让人感到困惑。本文将深入探讨私有静态内部类的作用、实现方式及其在实际开发中的应用,帮助读者更好地理解和使用这一重要的编程技巧。 ... [详细]
  • 在Java Web服务开发中,Apache CXF 和 Axis2 是两个广泛使用的框架。CXF 由于其与 Spring 框架的无缝集成能力,以及更简便的部署方式,成为了许多开发者的首选。本文将详细介绍如何使用 CXF 框架进行 Web 服务的开发,包括环境搭建、服务发布和客户端调用等关键步骤,为开发者提供一个全面的实践指南。 ... [详细]
  • 在Java项目中,当两个文件进行互相调用时出现了函数错误。具体问题出现在 `MainFrame.java` 文件中,该文件位于 `cn.javass.bookmgr` 包下,并且导入了 `java.awt.BorderLayout` 和 `java.awt.Event` 等相关类。为了确保项目的正常运行,请求提供专业的解决方案,以解决函数调用中的错误。建议从类路径、依赖关系和方法签名等方面入手,进行全面排查和调试。 ... [详细]
  • 本文深入探讨了Java多线程环境下的同步机制及其应用,重点介绍了`synchronized`关键字的使用方法和原理。`synchronized`关键字主要用于确保多个线程在访问共享资源时的互斥性和原子性。通过具体示例,如在一个类中使用`synchronized`修饰方法,展示了如何实现线程安全的代码块。此外,文章还讨论了`ReentrantLock`等其他同步工具的优缺点,并提供了实际应用场景中的最佳实践。 ... [详细]
  • 本文详细介绍了267 Collections的特性和应用场景。作为Java集合框架中的核心接口,Collection接口是所有单列集合类的顶级接口,涵盖了列表、集合和队列等数据结构。通过具体的应用实例,本文深入解析了Collection接口的各种方法和功能,帮助开发者更好地理解和使用这一重要工具。 ... [详细]
  • 在本节课程中,我们将深入探讨 JSP 编程中的实际案例,通过具体代码示例 `code316.java` 来解析数据库连接的实现。该示例展示了如何使用 Java 的 JDBC API 进行数据库操作,包括加载数据库驱动、建立连接等关键步骤。通过本课程的学习,读者将能够更好地理解和应用 JSP 中的数据库连接技术。 ... [详细]
  • 在使用 Qt 进行 YUV420 图像渲染时,由于 Qt 本身不支持直接绘制 YUV 数据,因此需要借助 QOpenGLWidget 和 OpenGL 技术来实现。通过继承 QOpenGLWidget 类并重写其绘图方法,可以利用 GPU 的高效渲染能力,实现高质量的 YUV420 图像显示。此外,这种方法还能显著提高图像处理的性能和流畅性。 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
  • 本文介绍了如何利用ObjectMapper实现JSON与JavaBean之间的高效转换。ObjectMapper是Jackson库的核心组件,能够便捷地将Java对象序列化为JSON格式,并支持从JSON、XML以及文件等多种数据源反序列化为Java对象。此外,还探讨了在实际应用中如何优化转换性能,以提升系统整体效率。 ... [详细]
  • 枚举类中enum关键字的常见应用与实践
    在枚举类中,`enum`关键字具有重要的作用,本文探讨了其常见的应用场景与实践。特别指出,枚举对象必须置于枚举类的首行,否则将导致编译错误。通过具体的代码示例,详细解析了这一规则及其背后的原理,帮助开发者更好地理解和使用枚举类。 ... [详细]
author-avatar
手机用户2502905891
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有