为了账号安全,请及时绑定邮箱和手机立即绑定

在 Hangman 游戏中制作难度功能

在 Hangman 游戏中制作难度功能

阿晨1998 2021-12-17 15:56:53
我是 Python 新手,需要我编写的一段代码的帮助。截至目前,我的程序功能齐全,但是我无法按预期工作。我有多个 .txt 文档,其中包含不同难度的单词。我希望用户能够选择他们将要玩的难度。目前,当我尝试运行该程序时,我收到一条错误消息,指出“未定义单词”。任何帮助是极大的赞赏import randomprint ("WELCOME, YOU ARE PLAYING HANGMAN!")input("Press Enter to continue...")def printhangmen(guesses):    if (guesses == 0):        print("""_________|/        |              |                |                 |               |                   |___                 """)    if (guesses == 1):         print("""_________|/   |      |              |                |                 |               |                   |___                 """)    elif (guesses == 2):        print("""_________       |/   |              |   (_)|                         |                       |                         |                          |___                       """)    elif (guesses == 3):        print("""________               |/   |                   |   (_)                  |    |                     |    |                    |                           |                            |___                    """)    elif (guesses == 4):        print("""_________             |/   |               |   (_)                   |   /|                     |    |                    |                        |                          |___                          """)    elif (guesses == 5):        print("""_________              |/   |                     |   (_)                     |   /|\                    |    |                       |                             |                            |___                          """)    elif (guesses == 6):        print("""________                   |/   |                         |   (_)                      |   /|\                             |    |                          |   /                            |                                  |___                              """)
查看完整描述

3 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

在这里,您尝试将难度附加到“级别”字符串。

word = (random.choice(open("Level"(difficulty).txt).read().split()))

你可以试试这样的

word = (random.choice(open("Level{0}.txt".format(difficulty)).read().split()))

实际获得您期望的文件名。

有了这个,您还可以删除

if difficulty == X:

部分,但您需要注意检查您尝试使用用户输入打开的文件是否确实存在。

而且您还需要查看您的 checkLetter 方法,因为该行

guess_word[word.index(c)] = c

只会改变 guess_word 字符串中正确字母的第一次出现(如果字母出现不止一次,可能会改变多次)。您需要获取正确字母每次出现的位置。


查看完整回答
反对 回复 2021-12-17
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

您正试图将一个单词读两遍。将 if 语句中的行替换为: word=(random.choice(open("Level1.txt").read().split())) 不要忘记在 if-elif 块之前声明 'word'。并删除 if 语句末尾的行。 word = (random.choice(open("Level"(difficulty).txt).read().split()))此外,按照其他答案中的建议将输入视为字符串。这应该根据我的工作



查看完整回答
反对 回复 2021-12-17
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

一个可能的问题是您尝试读取目标文件两次,并且第一次从未关闭它。考虑只读取一次输入文件:


while True:

    difficulty = int(input("""choose your difficulty,

    1 = EASY

    2 = INTERMEDIATE

    3 = HARD

    4 = VERY HARD

    5 = INSANE"""))


    if difficulty >= 1 and difficult <= 5:

        break

    else:

        print("Please enter a difficulty level of 1 to 5")


word = random.choice(open("Level"(difficulty).txt).read().split())

此外,input()返回一个字符串,因此如果您想将difficulty视为整数,则将结果从input().


查看完整回答
反对 回复 2021-12-17
  • 3 回答
  • 0 关注
  • 230 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号