private void AddNeghbourTiles(Tile tile)
 {
     var neighbours = neighbourTilesHelper.GetNeighbourTiles(tile);
     foreach (var neighbourTile in neighbours)
     {
         if (!AlreadyExists(neighbourTile))
         {
             neighbourTiles.Add(neighbourTile);
         }
     }
 }
        public IEnumerable<Tile> GetNeighbourTiles(Tile tile)
        {
            this.tile = tile;
            neighbours = new List<Tile>();

            GetNorthNeighbour();
            GetSouthNeighbour();
            GetWestNeighbour();
            GetEastNeighbour();

            return neighbours;
        }
        public void Should_return_list_of_neighbours_for_a_given_tile()
        {
            var tile = new Tile {XCoordinate = 2, YCoordinate = 2};
            var boardTiles = new List<Tile>
                {
                    new Tile{XCoordinate = 1, YCoordinate = 1},
                    new Tile{XCoordinate = 1, YCoordinate = 2},
                    new Tile{XCoordinate = 1, YCoordinate = 3},
                    new Tile{XCoordinate = 2, YCoordinate = 1},
                    new Tile{XCoordinate = 2, YCoordinate = 3},
                    new Tile{XCoordinate = 3, YCoordinate = 1},
                    new Tile{XCoordinate = 3, YCoordinate = 2},
                    new Tile{XCoordinate = 3, YCoordinate = 3},
                };
            var neighbourTilesHelper = new NeighbourTilesHelper(boardTiles);

            var neighbourTiles = neighbourTilesHelper.GetNeighbourTiles(tile).ToList();

            Assert.That(neighbourTiles.Count(), Is.EqualTo(4));
            Assert.That(neighbourTiles.Any(i => i.XCoordinate == 1 && i.YCoordinate == 2), Is.EqualTo(true));
            Assert.That(neighbourTiles.Any(i => i.XCoordinate == 2 && i.YCoordinate == 3), Is.EqualTo(true));
            Assert.That(neighbourTiles.Any(i => i.XCoordinate == 3 && i.YCoordinate == 2), Is.EqualTo(true));
            Assert.That(neighbourTiles.Any(i => i.XCoordinate == 2 && i.YCoordinate == 1), Is.EqualTo(true));
        }
Пример #4
0
 public void Should_set_tile_color()
 {
     var tile = new Tile {Color = Color.Blue};
     Assert.That(tile.Color, Is.EqualTo(Color.Blue));
 }
 private bool AlreadyExists(Tile neighbourTile)
 {
     return
         neighbourTiles.Any(
             i => i.XCoordinate == neighbourTile.XCoordinate && i.YCoordinate == neighbourTile.YCoordinate);
 }