Example #1
0
        /// <summary>
        /// Calculates the next step of the turtle
        /// </summary>
        private void Next()
        {
            StateConfiguration.ActualMove++;
            var actualMove     = StateConfiguration.Moves[StateConfiguration.ActualMove - 1];
            var actualPosition = StateConfiguration.Position;

            StateConfiguration.Position = StateHelper.CalculateNewPosition(actualMove, actualPosition);

            StateConfiguration.LightValidate();

            TurtleState = StateHelper.GetState(StateConfiguration.Position, StateConfiguration.TableConfig.Mines, StateConfiguration.TableConfig.Exit);
        }
Example #2
0
        public void GetNewPositionTest()
        {
            var actualMove     = Moves.M;
            var actualPosition = new Position {
                X = 0, Y = 0, Direction = Directions.N
            };

            var newPos1 = StateHelper.CalculateNewPosition(actualMove, actualPosition);
            var newPos2 = StateHelper.MoveInDirection(actualPosition);

            Assert.AreEqual(newPos1, newPos2);

            actualMove     = Moves.L;
            actualPosition = new Position {
                X = 0, Y = 0, Direction = Directions.N
            };
            newPos1 = StateHelper.CalculateNewPosition(actualMove, actualPosition);
            newPos2 = StateHelper.MoveInDirection(actualPosition);
            Assert.AreNotEqual(newPos1, newPos2);

            newPos1 = StateHelper.CalculateNewPosition(actualMove, actualPosition);
            newPos2 = StateHelper.Turn(actualMove, actualPosition);
            Assert.AreEqual(newPos1, newPos2);
        }