示例#1
0
        public Tile GetTile(TileTypes tileType)
        {
            switch (tileType)
            {
            case TileTypes.Dots:
            {
                if (_tilePool.ContainsKey(TileTypes.Dots))
                {
                    return(_tilePool[TileTypes.Dots]);
                }
                else
                {
                    var tile = new DotsTile();
                    _tilePool.Add(TileTypes.Dots, tile);
                    return(tile);
                }
            }

            case TileTypes.Squares:
            {
                if (_tilePool.ContainsKey(TileTypes.Squares))
                {
                    return(_tilePool[TileTypes.Squares]);
                }
                else
                {
                    var tile = new SquaresTile();
                    _tilePool.Add(TileTypes.Squares, tile);
                    return(tile);
                }
            }

            case TileTypes.Marble:
            {
                if (_tilePool.ContainsKey(TileTypes.Marble))
                {
                    return(_tilePool[TileTypes.Marble]);
                }
                else
                {
                    var tile = new MarbleTile();
                    _tilePool.Add(TileTypes.Marble, tile);
                    return(tile);
                }
            }
            }
            return(null);
        }
        private void FillWallWithTiles()
        {
            var tileWidth  = 60;
            var tileHeight = 60;

            var thirdWidth = (int)(wall.ActualWidth / 3);

            for (int x = 0; x < thirdWidth; x = x + tileWidth)
            {
                for (int y = 0; y < wall.ActualHeight; y = y + tileHeight)
                {
                    var tile = new MarbleTile(x, y, tileWidth, tileHeight);
                    tile.AddTileOnWall(wall);
                }
                ;
            }

            for (int x = thirdWidth; x < 2 * thirdWidth; x = x + tileWidth)
            {
                for (int y = 0; y < wall.ActualHeight; y = y + tileHeight)
                {
                    var tile = new SquaresTile(x, y, tileWidth, tileHeight);
                    tile.AddTileOnWall(wall);
                }
                ;
            }

            for (int x = 2 * thirdWidth; x < wall.ActualWidth; x = x + tileWidth)
            {
                for (int y = 0; y < wall.ActualHeight; y = y + tileHeight)
                {
                    var tile = new DotsTile(x, y, tileWidth, tileHeight);
                    tile.AddTileOnWall(wall);
                }
                ;
            }

            textBlockNumberOfTiles.Text = $"{Tile.InstancesCount} tiles were created";
        }