Esempio n. 1
0
        public void ProcessMoves_EightSnakes_IsNotTooSlow()
        {
            var board = TestCases.Test12().Board;

            int[,] boardArray = GetBoardArray(board);
            var snakeBodies = GetSnakeBodies(board);
            var healths     = GetHealths(board);

            var moves = new LegalMove[] { LegalMove.Left, LegalMove.Up, LegalMove.Up, LegalMove.Right, LegalMove.Left, LegalMove.Down, LegalMove.Down, LegalMove.Right };

            BodyPartPosition[][] futureSnakes = null;
            int[] futureHealths = null;
            var   stopwatch     = Stopwatch.StartNew();

            for (int i = 0; i < 65536; i++)
            {
                (futureSnakes, futureHealths) = this.gameEngine.ProcessMoves(snakeBodies, healths, boardArray, moves);
            }
            stopwatch.Stop();
            Console.WriteLine(stopwatch.Elapsed);
            Assert.That(stopwatch.ElapsedMilliseconds, Is.LessThan(100));

            Assert.That(futureSnakes.Count, Is.EqualTo(8));
            Assert.That(futureHealths.All(x => x == 100), Is.True);
        }
Esempio n. 2
0
        public void Test12()
        {
            var gameState = TestCases.Test12();

            var stopwatch = Stopwatch.StartNew();
            var move      = this.brain.Move(gameState);

            Console.WriteLine(stopwatch.Elapsed);

            Assert.That(move, Is.EqualTo(LegalMove.Up));
        }