Word_search循环后未完成单词

时间:2019-12-20 20:39:57

标签: python-3.x

我一直在尝试用Python创建一个单词生成器,我注意到的一件奇怪的事是它的for循环表现得很奇怪。这是代码

def word_horizontal_forward(word,board):
    actual = len(word) 
    row = len(board[0]) 
    num_row = randrange(int(config[1]))
    print("row is " + str(num_row))
    start = 0
    for b in range(len(board[0])):
        if board[num_row][start + b] == "":
            if b <= actual-1:
                print("start is " + str(start))
                print("adding word to " + str(start +b))
                board[num_row][start+b] = word[b]
            else:
                break
        else:
            print("row " + str(num_row) + " has been taken for " + word)
            start = start + actual
            print("new start is " + str(start))
            if start > row - len(word) + 1:
                num_row = randrange(int(config[1]))
    return board

在这里,尽管未显示代码,但我创建了一个木板,该木板的水平长度为20个字母,垂直长度为10个字母(尽管可以更改)。此外,在首次创建木板时,所有斑点都用空字符串标记。 对于代码,添加单词的方式是首先随机选择一行以放置单词,默认情况下,开始位置始终为0。然后,在每个板子的长度上循环b它将检查该职位是否为空。如果是的话,它将添加单词;但是,如果不是,那么它将跳至下一个位置(现在,这一次仅跳一个空格以进行检查,但是,对此是否有更有效的解决方案)。但是,我遇到的主要问题之一是,当整个事物再次循环在一起时,甚至在事物再次循环之前,以某种方式将b(用于将字母添加到板上的指示器)添加为一个。因此,最终结果意味着该单词的一部分将被切掉(假设该程序尝试将google放到已经存在的行中,并且已经尝试了两次,该单词将被切成“ ogle”)。任何人都可以发现问题,谢谢!

0 个答案:

没有答案