Замените тире и увеличьте количество соседних мин.Python

Программы на Python
Ответить
Anonymous
 Замените тире и увеличьте количество соседних мин.

Сообщение Anonymous »

Я пытаюсь заменить тире в этом двухмерном списке на количество соседних мин

Код: Выделить всё

grid = [["-", "-", "-", "#", "#"],
["-", "#", "-", "-", "-"],
["-", "-", "#", "-", "-"],
["-", "#", "#", "-", "-"],
["-", "-", "-", "-", "-"]]
И напечатайте новую сетку следующим образом:

Код: Выделить всё

1 1 2 # #
1 # 3 3 2
2 4 # 2 0
1 # # 2 0
1 2 2 1 0
Это мой текущий код на Python

Код: Выделить всё

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 0 0 # #
0 # 0 0 0
0 0 # 0 0
0 # # 0 0
0 0 0 0 0
Я вижу, что это 0 в первом [], когда я определяю переменную new_grid, из-за которой 0 не увеличивается для соседнего моего, но я не могу понять, как это сделать исправить

Подробнее здесь: https://stackoverflow.com/questions/792 ... s-adjacent
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»