Добрый день,
Есть задача:
Дан массив numpy 3x3, который представляет собой поле для игры в крестики-нолики. Массив целочисленный. Незаполненные поля обозначены 0, крестики – 1, нолики – 2.
Вам предстоит сделать такой ход за нолики, чтобы не дать противнику выиграть на следующем ходу.
Пример:
array([,
,
])
Правильный вывод:
[
]
Пробую сделать так (lst - исходный массив)
import numpy as np, sys
def step (arr):
if 0 in arr and 2 not in arr and sum(arr) == 2:
arr = 2
return arr
for i in range (3):
step(lst)
step(lst)
step(lst.diagonal())
print (lst)
Получаю ошибку при вызове процедуры для диагонали:
ValueError: assignment destination is read-only.
Для строк и столбцов работает.
Как решить эту проблему?