java游戏《刽子手》的逻辑

java游戏《刽子手》的逻辑,java,logic,Java,Logic,我有一个问题,关于如何处理一种情况。我对编码还是相当陌生的。在我的课堂上,老师让我们做一个经典的绞刑游戏,我陷入了困境。我只是想看看是否有人能帮我弄清楚这种情况的逻辑 我遇到的问题是: The secret word is: hangman Your progress: ------- Wrong guesses: Guesses remaining: 10 Number of words possible: 7359 Guess a letter: e 秘密是:刽子手 你的进展:--

我有一个问题,关于如何处理一种情况。我对编码还是相当陌生的。在我的课堂上,老师让我们做一个经典的绞刑游戏,我陷入了困境。我只是想看看是否有人能帮我弄清楚这种情况的逻辑

我遇到的问题是:

The secret word is: hangman Your progress: ------- Wrong guesses: Guesses remaining: 10 Number of words possible: 7359 Guess a letter: e 秘密是:刽子手 你的进展:------- 错误猜测: 剩余猜测:10 可能的字数:7359 猜一个字母:e 您将如何着手查找可能剩余的单词数?我们得到了一本字典,我们可以读入其中并从中得到单词的数量。几乎可以用任何方法来解决它。问题是,每当您猜到一个字符正确时,列表都会缩小,如下所示:

The secret word is: hangman Your progress: -an--an Wrong guesses: eix Guesses remaining: 7 Number of words possible: 3 Guess a letter: g
static boolean checkMatch(String candidateWord, String currentGuess) {
    return ...;
}
秘密是:刽子手 你的进步:-an--an 错误猜测:eix 剩余猜测:7 可能的字数:3 猜一个字母:g 希望你们能给我一些想法


谢谢

最糟糕的解决方案可能是使用正则表达式,并在一次有效猜测后检查每个单词

为了使这一点更好,可以使用length()稍微修剪一下



哦,保留一组当前有效的单词。(因此只缩小集合而不是遍历每个单词)

假设您的词典单词存储在某种类型的集合中,比如说,一个
列表。我们还假设您知道如何构建表示当前猜测状态的字符串(即示例中的
“-an--an”

您只需编写如下函数:

The secret word is: hangman Your progress: -an--an Wrong guesses: eix Guesses remaining: 7 Number of words possible: 3 Guess a letter: g
static boolean checkMatch(String candidateWord, String currentGuess) {
    return ...;
}
您的功能需要实现以下逻辑:

  • 如果
    candidateWord
    currentGuess
    的长度不同,则返回
    false
    。否则,
  • candidateWord
    中的每个字母与
    currentGuess
    中相同位置的字母对照检查
  • 如果
    currentGuess
    的字母是破折号
    '-'
    ,或者如果它与
    候选词的字母在同一位置匹配,则转到下一个字母
  • 否则,返回
    false
  • 到达单词末尾后,返回
    true

使用此函数,您可以获取当前猜测,对照每个字典单词进行检查,并在每次
checkMatch
返回
true
时增加计数。这将为您提供可能匹配的数量。

如果您只有15个单词,您会怎么做?字典是如何存储的?@ekcrisp我将它存储在Hashtable@BheshGurung我没有任何代码。只是想弄清楚情况的逻辑。在尝试获取可能的字数时,请查看此()示例,了解如何在哈希表上进行迭代。在while循环中,您应该使用checkMatch函数查看散列键是否可以与当前值匹配guess@dasblinkenlight谢谢,这接近我的想法,但简单多了。谢谢你的参考!