Уведомления

Группа в Telegram: @pythonsu

#1 Май 4, 2010 09:12:32

cannibale
От:
Зарегистрирован: 2010-04-20
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Непонятное явление в матрице!

при выполнении данного кода

# -*- 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]])

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]]
почему ловятся Нули во второй строке результата, а ещё и в таком количестве?
ведь в условии явно задано что оно должно срабатывать только при условии ненулевого значения в ячейке матрицы
а при замене трёх единиц нулями, откуда берётся неправильный 4й?
и где бы почитать про библиотеку NumPy на русском



Офлайн

#2 Май 4, 2010 09:55:03

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Непонятное явление в матрице!

score обнуляешь?
что ты ожидаешь получить когда y = 2, в matrix1

Офлайн

#3 Май 4, 2010 12:30:10

cannibale
От:
Зарегистрирован: 2010-04-20
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Непонятное явление в матрице!

тем не менее все работает, пока не

matrix1[x][y],matrix1[x][y-1],matrix1[x][y-2] = 0, 0, 0



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version