Я не буду давать вам точное решение, но я надеюсь, что будет полезно подготовить его самостоятельно.
Ваша структура данных состоит из списка, каждый элемент которого представляет собой строкудоска. Итак, у вас есть список с количеством элементов, равным количеству строк на доске.
Элементами такого списка являются сами списки: поэтому каждая строка представлена списком, в котором каждый элемент представляет определенную ячейку доски (не столбец, а ячейку!). Итак, ваша структура данных представляет собой список списков.
Итак, можно спросить: что такое столбец доски в этом представлении? И ответ таков: нет фактической структуры данных, которую можно назвать столбцом на плате, просто столбец можно увидеть как: «все элементы в одной и той же позиции целочисленных списков».
Итак, если вы хотите извлечь конкретную ячейку из представления вашей доски, идентифицируемого парой координат (номер строки, номер столбца), вы должны «перевести» эту информацию в ваше конкретное представление структуры данных. , что выражается вместо этого в списке списков. Например, если вы хотите получить содержимое ячейки в координатах (3, 5), то есть в строке 3 и столбце 5, вы должны рассуждать следующим образом: я могу получить доступ непосредственно к строке 3, так как эточетвертый элемент «большого» списка, но не столбцу 5, поскольку ему ничего не соответствует.
Но если я смогу получить доступ к строке 3, например, с помощью (nth 3 board)
, то получуэто список, соответствующий ячейкам такой строки, поэтому нет необходимости получать столбец 5, я могу просто взять элемент 5 этого списка и получить содержимое ячейки с координатой (3, 5). Таким образом, достаточно получить номер 5 этого списка, например, с помощью (nth 5 (nth 3 board))
(то есть, поскольку (nth 3 board)
возвращает список ячеек этой строки, вы выбираете элемент 5 из этого списка).
Надеюсь, это поможет понять, как решить вашу проблему.