public void Construct(IBoardBuilder builder) { var random = new Random(); var count = 0; switch (_strategy.Name) { case Strategies.EasyStrategy: builder.AddEnemyVisitor(new EnemyEasyVisitor(_score)); builder.AddDrawTheme(new SimpleGame()); break; case Strategies.MediumStrategy: builder.AddEnemyVisitor(new EnemyMediumVisitor(_score)); builder.AddDrawTheme(new RetroGame()); break; case Strategies.HardStrategy: builder.AddEnemyVisitor(new EnemyHardVisitor(_score)); builder.AddDrawTheme(new AlienGame()); break; } for (var column = 0; column < Contracts.GameSizeHeight; column++) { for (var row = 0; row < Contracts.GameSizeWidth; row = row + 10) { var number = random.Next(0, 100); var position = new Block() { From = new Position(row, column), To = new Position(row + 8, column) }; if (number >= _strategy.HardEnemyProbability) { builder.AddHardEnemy(position); } else if (number >= _strategy.MediumEnemyProbability) { builder.AddMediumEnemy(position); } else { builder.AddEasyEnemy(position); } count++; if (count > _strategy.InitialSize + _level) { break; } } if (count > _strategy.InitialSize + _level) { break; } } if (_spaceShipPosition != null) { builder.AddSpaceShip(4, _spaceShipPosition.X, _spaceShipPosition.Y, _bullets); } else { builder.AddSpaceShip(4, 40, 50); } }