我一直在尝试创建单词搜索生成器,由于某种原因,一旦单词长度超过5个字符,我的代码就会中断。一件有趣的事情是,单词超过5个字母后,它将开始删除第5个字母并继续删除(打印“ abcde”,然后以6个字符长依次打印“ abcd”和“ abc”)。您能帮忙找出循环中的问题吗?
def create_board():
board = [[]for _ in range(10)]
for a in range(len(board)):
for b in range(10)):
board[a].append("")
return board
board = create_board()
def add_word_horizontal_forward(word,board):
word_list = list(word)
num_row = randrange(len(board))
start = 0
for b in range(int(config[0])-len(word_list)):
if board[num_row][start + b] == "":
if b <= len(word_list)-1:
board[num_row][start + b] = word_list[b]
else:
break
else:
break
start = start + len(word_list) -1
if start > len(board[num_row]) - len(word_list):
return -1
return board
print(add_word_horizontal_forward("abcdefg",board)
这是代码的快速摘要:我有一个嵌套列表,该函数将首先检查它要放的位置是否实际上是一个空列表,如果是,则放下该字母;如果不是,则将起始位置更改为下一个位置(该位置即板的长度-1。但是,这根本行不通,并且我检查了初始板是否正确,并且没钱。