예제 #1
0
        public void TestGoToNextCheckpoint(int threadCount)
        {
            rocket = rocket.IncreaseCheckpoints();
            var level = new Level(rocket, new[] { new Vector(200, 100), new Vector(0, 100) },
                                  LevelsFactory.StandardPhysics);
            var expectedResult = level.InitialRocket.Move(Turn.Left, level); // Нам к (0, 100), потому что первый уже взят.

            RunTestCase(threadCount, level, expectedResult);
        }
        public void Move(Turn turn)
        {
            if (IsCompleted)
            {
                return;
            }
            var nextCheckpoint = Rocket.TakenCheckpointsCount % Checkpoints.Length;

            if (nextCheckpoint != Checkpoints.Length && (Rocket.Location - Checkpoints[nextCheckpoint]).Length < 20)
            {
                Rocket = Rocket.IncreaseCheckpoints();
            }
            Rocket = physics.MoveRocket(Rocket, 1.0, turn, 0.5);
        }