コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }