positions = [[-1, -1], [-1, 0], [-1, 1], [0, -1], [0, 1], [1, -1], [1, 0],[1, 1]]
mine = "#"
new_grid = [[[0, mine][count_two == mine] for count_two in row] for row in grid]
def minesweeper(grid):
count = 0
for count, value in enumerate(grid):
for count_two, value_two in enumerate(value):
for dr, dc in grid:
if value_two == mine:
if count+dr in range(len(grid)) \
and count_two+dc in range(len(value)):
new_grid[count][count_two] += \
grid[count+dr][count_two+dc] == mine
for row in new_grid:
for count_two in row:
print(count_two, end=" ")
print()
Я вижу, что это 0 в первом [], когда я определяю переменную new_grid, из-за которой 0 не увеличивается для соседнего моего, но я не могу понять, как это сделать исправить
Я пытаюсь заменить тире в этом двухмерном списке на количество соседних мин [code]grid = [["-", "-", "-", "#", "#"], ["-", "#", "-", "-", "-"], ["-", "-", "#", "-", "-"], ["-", "#", "#", "-", "-"], ["-", "-", "-", "-", "-"]] [/code] И напечатайте новую сетку следующим образом: [code]1 1 2 # # 1 # 3 3 2 2 4 # 2 0 1 # # 2 0 1 2 2 1 0 [/code] Это мой текущий код на Python [code]positions = [[-1, -1], [-1, 0], [-1, 1], [0, -1], [0, 1], [1, -1], [1, 0],[1, 1]] mine = "#" new_grid = [[[0, mine][count_two == mine] for count_two in row] for row in grid] def minesweeper(grid): count = 0 for count, value in enumerate(grid): for count_two, value_two in enumerate(value): for dr, dc in grid: if value_two == mine: if count+dr in range(len(grid)) \ and count_two+dc in range(len(value)): new_grid[count][count_two] += \ grid[count+dr][count_two+dc] == mine for row in new_grid: for count_two in row: print(count_two, end=" ") print() [/code] Однако он печатает следующее: [code]0 0 0 # # 0 # 0 0 0 0 0 # 0 0 0 # # 0 0 0 0 0 0 0 [/code] Я вижу, что это 0 в первом [], когда я определяю переменную new_grid, из-за которой 0 не увеличивается для соседнего моего, но я не могу понять, как это сделать исправить