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; }