public override bool Equals(object obj)
{
PunchPattern other = obj as PunchPattern;
if (other == null)
return false;
if (size != other.size)
return false;
for (int i = 0; i < size; ++i)
for (int j = 0; j < size; ++j)
if (dots[i, j] != other.dots[i,j])
return false;
return true;
}