Beispiel #1
0
        private void TestCombat(
            string[] input,
            string[] expectedResult,
            int expectedRounds,
            int expectedHitpoints,
            int expectedScore)
        {
            var cave      = new Cave(input);
            var numRounds = 0;

            while (!cave.Act())
            {
                numRounds += 1;
            }

            Assert.Equal(expectedRounds, numRounds);
            Assert.Equal(expectedHitpoints, cave.SumHitpoints);
            Assert.Equal(expectedScore, numRounds * cave.SumHitpoints);
            var result = cave.GetState();

            Assert.Equal(expectedResult.Length, result.Length);
            for (var i = 0; i < expectedResult.Length; i++)
            {
                Assert.Equal(expectedResult[i], result[i]);
            }
        }
Beispiel #2
0
        public void CaveShouldMoveCreatures()
        {
            var input = new[]
            {
                "#########",
                "#G..G..G#",
                "#.......#",
                "#.......#",
                "#G..E..G#",
                "#.......#",
                "#.......#",
                "#G..G..G#",
                "#########",
            };
            var numMoves       = 3;
            var expectedResult = new[]
            {
                "#########",
                "#.......#",
                "#..GGG..#",
                "#..GEG..#",
                "#G..G...#",
                "#......G#",
                "#.......#",
                "#.......#",
                "#########",
            };

            var cave = new Cave(input);

            for (var i = 0; i < numMoves; i++)
            {
                cave.Act(allowAttacks: false);
            }

            var result = cave.GetState();

            Assert.Equal(expectedResult.Length, result.Length);
            for (var i = 0; i < expectedResult.Length; i++)
            {
                Assert.Equal(expectedResult[i], result[i]);
            }
        }