Получение диагоналей этой матрицы - PullRequest
0 голосов
/ 28 сентября 2019

Я пытаюсь создать функцию, которая получала бы диагональ из списка в списке, или матрицу моей головоломки поиска слов.

def get_left_up (start_x, start_y, board):
word = []
for row in range (start_x, -1,-1):
    for col in range (start_y,-1, -1):
        word.append(board[row][col])
word = ''.join(word)
return word

get_left_down (start_x, start_y, board):
word = []
for row in range (start_x,len(board)):
    for col in range (start_y,-1,-1):
        word.append(board[row][col])
word = ''.join(word)
return word

def get_right_up (start_x, start_y, board):
word= []
for row in range (start_x,-1,-1):
    for col in range (start_y,len(board)):
        word.append(board[row][col])
word = ''.join(word)
return word

def get_right_down (start_x, start_y, board):
word = []
for row in range (start_x, len(board)):
    for col in range (start_y,len(board)):
      word.append(board[row][col])
word = ''.join(word)
return word

на данный момент те, где функции, над которыми я должен работать.Однако что-то не так.Я намереваюсь ввести аргументы координат первой буквы, совпадающей с искомым словом, к доске и объединить символы со всех направлений диагоналей.

1 Ответ

0 голосов
/ 28 сентября 2019

Для правой нижней диагонали вам нужно увеличить x и y на одной и той же итерации, а не проходить по всем элементам столбца для определенной строки.

def get_right_down (start_x, start_y, board):
   word = []
   col = start_y
   for row in range (start_x, len(board)):
      if col >= len(board):
         break
      word.append(board[row][col])
      col = col + 1
   return ''.join(word)
...