我在写一个有两个输球条件的游戏:
Wordlist是一个单词列表,frag是前一个片段,a是玩家输入的新字母。所以frag可能看起来像是“app”和“l”,它的意思是形成一个单词apple。在
def getLoser(frag, a, wordlist):
word = frag + a
if len(word) > 3:
if word in wordlist:
print 'word in wordlist'
return True
else:
for words in wordlist:
if words[:len(word)] == word:
print words,':', word
print 'valid word left'
return False
else:
print words[:len(word)]
print words,':', word
print 'false found'
return True
else:
return False
由于某些原因,当我输入第4个字母时,它会自动转到For循环中的else,即使当我在交互跟踪中单独对虚拟数据进行测试时,For循环中if语句的功能正常工作。在
这是frag alg和字母e的输出,单词表中有单词代数。在
e
aa
aa : alge
false found
True
有什么想法吗?在
你太复杂了。如果新片段少于3个字母,则自动确定。如果不是,它一定是某个单词的开始,而不是一个单词本身。在
(可以将上述两个测试合并为一个条件语句:
^{pr2}$但我认为这太模糊了。)
我不能理解你上面代码的逻辑,它写得相当混乱。(例如,
words
为什么是字符串?)尝试用伪代码编写游戏的逻辑,然后再尝试实现它,这样可以帮助你理清思路。在这里有一个更清晰的版本:
相关问题 更多 >
编程相关推荐