繁体   English   中英

Python猜字游戏

[英]Python guessing word game

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

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()

不,它不会重置之前的记录:您没有以前的记录。 对每一个呼叫guessAletter非常明确把一个连字符不是当前猜字母的任何位置。

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

我有几个建议:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM