gpt4 book ai didi

java - 简单的 Java Hangman 作业

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:45:51 28 4
gpt4 key购买 nike

我被困在一个类的 Java 作业中,我们需要制作 Hangman 游戏,但这是一个非常基本的游戏(这是 Java 类的介绍)。基本上我有一个由某人输入的词,另一个人必须猜测这个词,但他们看不到这个词,所以它会像这样显示,例如(如果这个词是 aardvark)

* * * * * * * *

然后用户输入一个字母,如果它是单词的一部分,则显示这些字母,示例:

输入字母:a
一个* * *一个* *

输入字母:k
a * * * a * k

输入字母:r
一个 r * * 一个 r k

还有一个......是的,我已经坚持了一段时间,我真的需要帮助谢谢

P.S:这是一个介绍类,所以到目前为止我只知道循环(for、while、do while 等)、if、if/else、switch 语句等。

import java.util.Scanner;

public class ass_2 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

// public static final Comparator<secretWord> CASE_INSENSITIVE_ORDER;

int attempts = 10;
int wordLength;
boolean solved;
Scanner userInput = new Scanner(System.in);


System.out.println("OK Guessing Player ... turn around, while your friend enters the word to guess!\n");
System.out.println("Other Player ‐ Enter your word (letters only, no repeated letters and not case sensitive):");

String secretWord = userInput.next();


// 20 blank spaces WITH a for loop, we're smart!
for(int i = 1; i <= 20; i++)
System.out.print("\n");


Scanner userLetter = new Scanner(System.in);
String letter;

System.out.print("Word to date: ");
for (int i = 0; i < secretWord.length(); i++)
{
System.out.print("*");
}

while (attempts <= 10 && attempts > 0)
{
System.out.println("\nAttempts left: " + attempts);
System.out.print("Enter letter: ");

attempts--;
}

System.out.println("\n---------------------------");
System.out.println("Sorry you didn't find the mystery word!");
System.out.println("It was \"" + secretWord + "\"");

}

最佳答案

嘿 Jordan,你的第一次尝试看起来非常棒!您只需要在 while 循环中添加一些逻辑来读取猜测并将“*”替换为正确的猜测。而且我建议您也将混淆后的单词(“*****...”)存储在一个字符串中,而不是仅仅打印出来,稍后会很方便..

根据您的代码判断,您不需要任何关于用户输入的帮助,您唯一的问题是用正确的猜测正确替换星星,让我们开始吧:

String secret;
//read in secret string
String displaySecret;
//generate as many "*"s as secret is long and store them in displaySecret

现在最酷的是:

...no repeated letters...

这将使您的作业变得容易得多!查看Williwaw提供的String类的文档。在那里你会发现两种方法可以导致解决方案:

  • 一种方法是查找字符串中某个字符的第一次出现并输出其位置。由于您不接受重复的信件,因此这也是唯一出现的情况。
  • 另一种方法是将字符串中给定位置的字符替换为另一个字符。

我认为您会很容易找到解决方案。欢迎在评论中提出更多问题!

编辑:更多帮助

String secret = "example-text";
String displaySecret = "";
for (int i = 0; i < secret.length(); i++)
displaySecret += "*";

char guess;
//read in a guess
int position = secret.indexOf(guess);
//now position contains the index of guess inside secret, or
//-1 if the guess was wrong

String newDisplaySecret = "";
for (int i = 0; i < secret.length(); i++)
if (i == position)
newDisplaySecret += secret.charAt(i); //newly guessed character
else
newDisplaySecret += displaySecret.charAt(i); //old state

displaySecret = new String(newDisplaySecret);

该死的,我确定有某种 setCharAt(int) 方法......循环完成了这项工作。

关于java - 简单的 Java Hangman 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4988143/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com