public bool MoveRectangle(ref EngineRectangle er, double offset, bool barrier = false) { // Review remark from IP: // в більшості випадків слід прагнути до мінімізації к-тей операторів "return" (точка виходу) в ф-ціях, // множинні галуження різко зменшують читабельність та супровід коду if (this.CanMoveRectangle(er, offset)) { er.Move(offset); if (er.X >= this.RectWidth * 16) { this.FinishRaise(true); } else { this.FinishRaise(false); } return(true); } else if ((er.IsBarrier) && (er.Direction == Directions.Left)) { er.Direction = Directions.Right; return(this.MoveRectangle(ref er, offset, er.IsBarrier)); } else if ((er.IsBarrier) && (er.Direction == Directions.Right)) { er.Direction = Directions.Left; return(this.MoveRectangle(ref er, offset, er.IsBarrier)); } return(false); }
public void MoveRightTest() { EngineRectangle er = new EngineRectangle(1.5, 4.2, 5.0, 3.3, Directions.Right); er.Move(1.5); Assert.AreEqual(3.0, er.X); }
public void MoveDownTest() { EngineRectangle er = new EngineRectangle(1.5, 4.2, 5.0, 3.3, Directions.Down); er.Move(1.5); Assert.AreEqual(5.7, er.Y); }