private void createAsteroids(Dimension size) {
		// the center region is used to restrict asteroid positions
		// they can not be added to the center region
		// because that is where the ship is located
		MoveableObject noGoRegion = new MoveableObject();
		noGoRegion.width = size.width / (difficultyFactor + 1);
		noGoRegion.height = size.height / (difficultyFactor + 1);
		noGoRegion.position.x = ship.position.x;
		noGoRegion.position.y = ship.position.y;

		asteroids = new ArrayList<>();
		for (int i = 0; i < asteroidsCount; ++i) {
			MoveableObject asteroid = new MoveableObject();
			do {
				asteroid.position.x = random.nextInt(size.width);
				asteroid.position.y = random.nextInt(size.height);
			} while (noGoRegion.contains(asteroid.position));
			asteroids.add(asteroid);

			// an asteroid is a random rectangle
			asteroid.width = (10 + random.nextInt(10)) * difficultyFactor;
			asteroid.height = (10 + random.nextInt(10)) * difficultyFactor;

			int impulseX = (1 + random.nextInt(4)) * difficultyFactor;
			int impulseY = (1 + random.nextInt(4)) * difficultyFactor;

			// force the asteroid to be initially moving away from the ship
			if (asteroid.position.x < ship.position.x) {
				impulseX *= -1;
			}
			if (asteroid.position.y < ship.position.y) {
				impulseY *= -1;
			}

			asteroid.push(impulseX, impulseY);
		}
	}