Python猜字gam

2024-03-28 19:56:23 发布

您现在位置: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()

Tags: 代码inreturnifdefrandomelseword
1条回答
网友
1楼 · 发布于 2024-03-28 19:56:23

不,它不会重置你以前的记录:你没有以前的记录。每次对guessAletter的调用都会非常明确地将连字符放在任何位置,而不是当前猜测的字母。你知道吗

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

我有几点建议:

  1. 练习增量编程。写几行代码来执行程序的一个小部分。调试它们。通过测试几种可能性,直到你知道他们做了你想做的事情,不要继续。然后再写几行,重复这个过程直到你的程序运行。你知道吗
  2. 使用有意义的变量名。word并没有告诉我们太多;我们不知道这是我们应该猜测的单词,是您向用户显示的当前游戏进度,还是其他什么。在最坏的情况下,你用guessedLetter来表示不是一个字母,也不是猜测的东西。你知道吗
  3. 使用增量编程,遵循游戏状态的状态:这应该是一个值,通过猜测和检查函数来回传递。在该函数中更新它,然后在guess-a-letter循环中打印它。你知道吗

相关问题 更多 >