gpt4 book ai didi

python - 猜 python 中的单词游戏 - 如何屏蔽单词(例如 ------)

转载 作者:太空宇宙 更新时间:2023-11-04 10:49:05 26 4
gpt4 key购买 nike

我正在用 python 编写一个猜词游戏。这是我的学校项目。我快完成了,我只是有一件事有问题。我不知道如何掩盖一个词。例如,如果单词是 monkey,程序应该显示 ------ 并且当用户猜一个字母时,假设是 k,程序应该显示 ---k--

不幸的是,我必须以某种方式编写代码。我应该有一个主要功能,它只会调用其他功能来完成所有工作(比如会要求用户输入字母或检查猜测的单词是否正确的功能)。除了这个屏蔽功能,我已经完成了所有功能。

该函数称为maskWord(state, word, guess)。我必须保留这些变量,但它们将被传递给函数。 state 是掩码词(eg.------),word 是要猜的词(eg. monkey),guess 是用户猜测的字母。一旦函数更新了屏蔽词,它应该返回 state。另一条规则是我不能创建全局变量。传递的变量是必须使用的变量。

这是我所拥有的:

def maskWord(state, word, guess)
guessed = []
guessed.append(guess)
for guess in word:
if guess in guessed:
state += guess
else: state += "-"
return state

这根本行不通。因为我调用这个函数的main函数是一个while循环,所以每次guessed都变成空串。

如果有人能帮助我,我将不胜感激。我知道必须可以只使用变量来编写此函数,因为我的老师只允许使用这些变量。

最佳答案

修复了我的回答以反射(reflect)评论,它比 kjtl 的回答短一些。但它基于相同的概念,通过使用状态以及……嗯,当前状态:)

def maskWord(state, word, guess):
state = list(state)
for i in range(len(word)):
if word[i] == guess:
state[i] = guess
return "".join(state)


# Lets test if it works..:
word = "electricity"
state = "-" * len(word)
tries = 0

play = True
while play:
if tries == len(word)*2:
print "Fail...";
play = False
guess = raw_input("Guess: ")
tries +=1
state = maskWord(state, word, guess)
print state
if maskWord(state, word, guess) == word:
print "WIN, WIN!!";
play = False

关于python - 猜 python 中的单词游戏 - 如何屏蔽单词(例如 ------),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15195816/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com