У меня есть задание, в котором мы должны найти слова в поиске слов (минус диагонали).
M L G Y J U G D T W W I S F P
G Y O H I K O P V F J B J J H
N B I M T M Y W R D J E C A I
I Y M X C U E U Z G U I J Y C
K D P S L R W J I N C N S W T
O P S D I D A B Z I D G D A B
M X D H K E B H U G T S I L G
S G D U Y R V D G N D M L K M
S P X K T W E F P I G E J I T
B U L B C M K I F S I L F N W
Z Q L X H G C J N D I L B G C
M T B W Z L A D A A X Y O K X
A E C Z K F Y V F B U V G A W
Y G O Z E A W J R N S Q J E A
L O I T E R I N G H F I P G R
Это поиск слова 15x15
, который нам дан в виде текстового файла.Мы должны определить криминальные слова в поиске из списка:
["JAYWALKING", "BURGLARY", "LAUNDERING", "BADSINGING", "REDRUM", "SMOKING", "BEINGSMELLY","CONNING", "SCAMS", "LOITERING"]
Я прошел поиск слова и определил, что слова, которые нужно найти: redrum, badsinging, beingsmelly, jaywalking,и слоняться без дела.
Тем не менее, в моем коде я получаю результат только по одному от каждого направления: слоняясь и сойка.Я надеялся, что кто-нибудь может дать мне несколько советов о том, как сделать его полностью функциональным.
def crossword():
empty_list = []
crimes = ["JAYWALKING", "BURGLARY", "LAUNDERING", "BADSINGING", "REDRUM", "SMOKING", "BEINGSMELLY",
"CONNING", "SCAMS", "LOITERING"]
confession = open("confession.txt", "r")
for line in confession:
line = line.strip("\n")
new_list = line.split(' ')
empty_list.append(new_list)
#horizontal
words = []
for i in range(len(empty_list)):
string_1 = ""
string_2 = ""
m = len(empty_list[i])
for j in range(len(empty_list[i])):
string_1 = string_1 + empty_list[i][j]
string_2 = string_2 + empty_list[i][m-1-j]
for k in range(len(crimes)):
if crimes[k] in string_1 or crimes[k] in string_2:
words.append(crimes[k])
#vertical
for i in range(len(empty_list)):
string_1 = ""
string_2 = ""
m = len(empty_list[i])
for j in range(len(empty_list[i])):
string_1 = string_1 + empty_list[j][i]
string_2 = string_2 + empty_list[j][m-1-i]
for k in range(len(crimes)):
if crimes[k] in string_1 or crimes[k] in string_2:
words.append(crimes[k])
return words
print("Gentleman GoGo is guilty of:")
print(crossword())