Создание новой головоломки судоку

#python #sudoku

Вопрос:

У меня есть доска с решенным судоку, и я пытаюсь случайным образом заменить некоторые элементы на 0, чтобы создать новую головоломку. Как мне это сделать?

 board = [[2, 1, 3, 4], 
         [3, 4, 1, 2], 
         [1, 2, 4, 3],  
         [4, 3, 2, 1]]
 

Комментарии:

1. доска[строка][столбец]=0 ?

Ответ №1:

Вы можете использовать random.sample , чтобы найти n случайных координат для удаления с доски. Например, следующее установит 5 случайных ячеек равными 0:

 >>> import random
>>> empty_cells = random.sample([(i, j) for i in range(4) for j in range(4)], 5)
>>> for row, col in empty_cells:
...     board[row][col] = 0
... 
>>> board
[[2, 0, 3, 0], [3, 4, 0, 2], [1, 2, 0, 3], [4, 0, 2, 1]]