对于大于2的任何值,不返回列表

时间:2017-08-19 10:37:54

标签: python

我写了一小段代码,它是大型游戏的一个组成部分。这是一种位置/单词类型的游戏,其中提示人猜测神秘单词的一部分,具有所述猜测的提示位置和长度。对于给定猜测的元组列表(位置,长度),代码如下:

def trial(word_length):
    direction = True
    position = 0
    guess_length = 2
    steps = []
    while word_length != guess_length:
        while direction == True:
            steps.append((position,guess_length))
            if position != 0:
                position -= 1
            else:
                guess_length += 1
                direction = False               
        while direction == False:
            steps.append((position,guess_length))
            if (position + guess_length) < word_length:
                position += 1
            else:
                position -= 1
                guess_length += 1
                direction = True
    steps.append((0,word_length))
    return steps

此代码生成word_length 2的列表,但不会更大。我需要它,能够处理多达10个字母的单词。是什么原因选择不退回清单?

1 个答案:

答案 0 :(得分:0)

  

问题:它选择不返回列表的原因是什么?

您的代码将进入无限循环,因为position变为否定。

更改为以下内容。

while word_length != guess_length and position >= 0: