Продолжайте в том же проекте rocket.
В этой задаче в классе LevelsTask нужно добавить в игру ещё несколько уровней.
В результате должны быть следующие уровни:
Zero. Нулевая гравитация. Начальное положение ракеты и положение цели см. в коде. Если не указано иное, на других уровнях начальное положение цели и ракеты такое же.
Heavy. Постоянная гравитация 0.9, направленная вниз.
Up. Гравитация направлена вверх и значение её модуля вычисляется по формуле 300 / (d + 300.0), где d — это расстояние от нижнего края пространства. Цель должна иметь координаты (X:700, Y:500)
WhiteHole. Гравитация направлена от цели. Модуль вектора гравитации вычисляется по формуле 140*d / (d?+1), где d — расстояние до цели.
BlackHole. В середине отрезка, соединяющего начальное положение ракеты и цель, находится аномалия. Гравитация направлена к аномалии. Модуль вектора гравитации равен 300*d / (d?+1), где d — расстояние до аномалии.
BlackAndWhite. Гравитация равна среднему арифметическому гравитаций на уровнях WhiteHole и BlackHole.
Все уровни должны удовлетворять таким дополнительным условиям:
Расстояние от начального положения ракеты до цели должно быть в пределах от 450 до 550.
Угол между направлением на цель и начальным направлением ракеты должен быть не менее PI/4.
Постарайтесь избежать дублирования кода в этой задаче.