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