при выполнении данного кода
| Код | # -*- coding: cp1251 -*- import numpy as np matrix1 = np.array([[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1, 0, 0]], dtype = str)
for x in range(7, 0, -1): for y in range(7, 0, -1): if matrix1[x][y] != 0: if matrix1[x][y] == matrix1[x][y-1]== matrix1[x][y-2]:# проверка на 3 совпадения по y print "CATCH 3y!!!!", matrix1[x][y],matrix1[x][y-1],matrix1[x][y-2] matrix1[x][y],matrix1[x][y-1],matrix1[x][y-2] = 0, 0, 0 score += 1 if matrix1[x][y] == matrix1[x][y-1]== matrix1[x][y-2] == matrix1[x][y-3]:# проверка на 4 совпадения по y print "CATCH 4y!!!!",matrix1[x][y],matrix1[x][y-1],matrix1[x][y-2], matrix1[x][y-3] matrix1[x][y],matrix1[x][y-1],matrix1[x][y-2],matrix1[x][y-2] = 0, 0, 0, 0 score += 2
print "score = ",score print matrix1
|
имеем следующее
| Код | CATCH 3y!!!! 1 1 1 CATCH 4y!!!! 0 0 0 0 score = 3 score = 3 score = 3 score = 3 score = 3 score = 3 score = 3 [[0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0]]
|
почему ловятся Нули во второй строке результата, а ещё и в таком количестве? ведь в условии явно задано что оно должно срабатывать только при условии ненулевого значения в ячейке матрицы
|