public bool IsEqualTo(IVertex state)
{
if (state == null) return false;
if (!(state is Square)) return false;
Square square = (Square)state;
for (int i = 0; i < _square.Length; i++)
if (_square[i] != square._square[i])
return false;
return true;
}