public void Move_Initial() { BinaryTrack sut = BinaryTrack.StartEmptyTrack(_gameProps); Assert.AreEqual((0, 0), sut.Head); var map = sut.ToCartesian(); MapAssert.AllCoordinatesAreZeroExcept(map, (0, 0)); }
public void Move_East() { _sut.OnMove(Direction.East); BinaryTrack result = _sut.FirstPossibleTrack(); var map = result.ToCartesian(); Assert.AreEqual((1, 0), result.Head); MapAssert.AllCoordinatesAreZeroExcept(map, (0, 0), (1, 0)); }
public void CanRepresentAllEmptyCells() { var gameProps = new GameProps { Width = 4, Height = 4, MyId = 0 }; string[] shape = { "....", "....", "....", "...." }; BinaryTrack sut = BinaryTrack.FromString(gameProps, shape); int[,] map = sut.ToCartesian(); MapAssert.AllCoordinatesAreZero(map); }
public void CanRepresentMixedFreeAndIslandCells() { var gameProps = new GameProps { Width = 4, Height = 4, MyId = 0 }; string[] shape = { "x..x", ".xx.", "....", "...." }; BinaryTrack sut = BinaryTrack.FromString(gameProps, shape); int[,] map = sut.ToCartesian(); Assert.AreEqual(gameProps.Width, map.GetLength(0)); Assert.AreEqual(gameProps.Height, map.GetLength(1)); MapAssert.AllCoordinatesAreZeroExcept(map, (0, 0), (3, 0), (1, 1), (2, 1)); }
public void Setup() { _console = new ConsoleMock(); _gameProps = new GameProps { Width = 15, Height = 15, MyId = 0 }; var mapData = new short[] { 0, 3867, 3867, 7680, 7168, 7168, 30720, 30720, 28672, 25008, 25008, 1, 1, 24576, 24576, }; BinaryTrack binaryMap = BinaryTrack.FromDebug(_gameProps, mapData, null); var currentData = new short[] { 16384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; BinaryTrack currentTrack = BinaryTrack.FromDebug(_gameProps, currentData, (0, 0)); var filterData = new short[] { 32767, 32767, 32767, 32767, 32767, 31775, 31775, 31775, 31775, 32191, 32767, 32767, 32767, 32767, 32767, }; BinaryTrack filterTrack = BinaryTrack.FromDebug(_gameProps, filterData, null); var headPositionReducer = new HeadPositionReducer(_gameProps, binaryMap.ToCartesian(), filterTrack); _sut = EnemyTracker.FromDebug(_gameProps, binaryMap, currentTrack, null, _console, headPositionReducer, Direction.South); var moveProps = new MoveProps { OpponentOrders = "SILENCE|SURFACE 5", OpponentLife = 5, MyPosition = (2, 11), TorpedoCooldown = 0, MineCooldown = 3, SilenceCooldown = 5 }; _sut.Next(moveProps); var nextMoveProps = new MoveProps { OpponentOrders = "MOVE S", OpponentLife = 5, MyPosition = (2, 11), TorpedoCooldown = 0, SilenceCooldown = 2, MineCooldown = 1 }; _sut.Next(nextMoveProps); } } }
public void Move_SeveralDirection() { _sut.OnMove(Direction.East); _sut.OnMove(Direction.South); _sut.OnMove(Direction.East); _sut.OnMove(Direction.North); _sut.OnMove(Direction.East); _sut.OnMove(Direction.East); _sut.OnMove(Direction.East); _sut.OnMove(Direction.East); _sut.OnMove(Direction.East); _sut.OnMove(Direction.East); _sut.OnMove(Direction.East); _sut.OnMove(Direction.South); BinaryTrack result = _sut.FirstPossibleTrack(); var map = result.ToCartesian(); Assert.AreEqual((9, 1), result.Head); MapAssert.AllCoordinatesAreZeroExcept(map, (0, 0), (1, 0), (1, 1), (2, 1), (2, 0), (3, 0), (4, 0), (5, 0), (6, 0), (7, 0), (8, 0), (9, 0), (9, 1)); Console.WriteLine(_sut.Debug()); }