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"; }