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 字符串中正确字母的第一次出现(如果字母出现不止一次,可能会改变多次)。您需要获取正确字母每次出现的位置。

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()))
此外,按照其他答案中的建议将输入视为字符串。这应该根据我的工作

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().
添加回答
举报