Python猜字游戏

时间:2019-02-22 17:29:17

标签: python

我尝试使用函数转换代码。由于此编码尚未完成,但我设法使代码运行良好。唯一的事情是,每当我猜到一封信时,它都会重置我以前的记录。我如何存储我以前的猜测结果,并在字母正确猜出的情况下继续添加?

import random

def chooseAword(wordList):
    correct_word = random.choice(wordList)
    return correct_word

#def spelltheword(word)


def guessAletter(guessedletter):
    word = guessedletter
    guess = input('Guess a letter: ')
    letter = ''.join(x if x in guess else '-' for x in word)

    if guess in word:
            print("So far you have: ", letter)
    else:
          print("So far you have: ", letter)

    return letter

def playAgame(wordList):
    word = chooseAword(wordList)
    for n in range(5):
        guessletter = guessAletter(word)

def main():
    wordList = ('python', 'csharp','java','oracle')
    playAgame(wordList)

main()

1 个答案:

答案 0 :(得分:1)

否,它不会重置您以前的记录:您没有没有以前的记录。每次对guessAletter的呼叫都非常明确地将连字符放在当前猜测的字母不是的任何位置。

是的,您返回连字符和正确字母的单词(由于某种原因而命名为letter),但是调用程序playAgame将其放入局部变量guessletter(另一个具有误导性的名称),然后再也不会使用它。

我有几个建议:

  1. 实践增量编程。编写几行代码以执行程序的一部分。调试它们。通过测试几种可能性,直到您知道他们做了自己想做的事情为止,否则不要继续。然后再写几行;重复此过程,直到您的程序起作用为止。
  2. 使用有意义的变量名。 word并没有告诉我们太多;我们不知道这是我们应该猜到的字眼,还是显示给用户的当前游戏进度,还是其他。最糟糕的情况是,您将guessedLetter用于不是单个字母也不是猜测的内容。
  3. 通过增量编程,请遵循游戏状态的状态:这应该是您的猜测和检查功能来回传递的一个值。您可以在该函数中对其进行更新,并在“猜测字母”循环中进行打印。