Moon Lander

Рекомендованный уровеньуровень
10+
В конце 1970-х – начале 1980-х, когда деревья были большими, а видеоигры — по-настоящему сложными, была среди них одна, которую можно назвать хардкорнейшей среди хардкорных. Имя ей — Lunar Lander. Впервые игра заставила людей страдать ещё в 1979 году, когда эти самые люди опускали свои кровно заработанные медяки в монетоприёмник аркадного автомата Atari. После этого люди превращались в пилотов и принимали управление посадочным лунным модулем, который уверено приближался к лунной поверхности. У Луны рельеф для этих целей так себе — горки-пригорки. Соответственно, мест для мягкой посадки — раз-два и обчёлся. Игроку предстояло нейтрализовать лунное притяжение и замедлить падение с помощью кормовых ускорителей. Управление тягой и ускорителем было пропорциональным, топливо расходовалось быстро, и когда его запасы истощались, корабль переставал реагировать на действия пилота. В таком случае игрок мог докинуть ещё монеток в аркадный автомат (здравствуй, прародитель современных игровых лутбоксов!). Игра требовала недюжинного терпения, посадить модуль медленно и ровно было ох как непросто. Собственно, чем лучше виртуальный пилот это сделает, тем больше баллов получит. Предлагаем вам приобщиться к прекрасному, и написать свою версию «Лунного модуля». Наш Moon Lander будет похож на классический, только графика у нас будет получше (всё-таки 40 лет прошло!). Мы создадим симпатичный посадочный модуль, который нужно аккуратно посадить на Луну, не задев горы. Для мягкой и ровной посадки будем использовать основной двигатель, который замедляет падение и приподнимает, а также боковые двигатели для горизонтального перемещения. Думаете, сложная задачка? Сложная, но не неподъемная. Наша команда уже снабдила её рекомендациями и разбила её на приемлемые для начинающего программиста шаги. Так что дерзайте!
Комментарии (49)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Sergey Kornilov
Уровень 21, Petropavlovsk, Казахстан
undefined, 16:03
Всего эту задачу решили 1659 учеников.
Иван Чепурин Junior QA inginer в Перформанс Лаб
19 сентября, 18:32
Почему ракета без инерции по оси X?... Так ведь не интересно...
Юлия Java Developer
28 мая, 07:37
всё, что нужно знать о валидаторе 😏
Alex Support Moderator
29 мая, 09:42
Из какой части этой игры это?
Юлия Java Developer
2 июня, 13:05
кажется, уровень 20 из 23.
Mike-L
Уровень 43
17 мая, 18:31
package com.javarush.games.moonlander;

public class ShapeMatrix {
    public static final int[][] ROCKET = new int[][]{
            {0, 0, 0, 6, 0, 0, 0},
            {0, 0, 6, 6, 6, 0, 0},
            {0, 0, 6, 0, 6, 0, 0},
            {0, 0, 6, 6, 6, 0, 0},
            {0, 0, 6, 0, 6, 0, 0},
            {0, 0, 6, 6, 6, 0, 0},
            {0, 6, 6, 0, 6, 6, 0},
            {6, 6, 6, 6, 6, 6, 6},
            {6, 0, 0, 6, 0, 0, 6},
    };
}
типа догадайся сам Кроме координат, у игрового объекта будет матрица, отвечающая за внешний вид. Давай добавим в класс GameObject переменную matrix типа int[][] для ее хранения. А теперь займемся посадочным лунным модулем. Для простоты будем называть его просто ракетой. Создадим класс Rocket, наследуемый от класса GameObject, так как ракета — это игровой объект. Обрати внимание, что у нас появился вспомогательный класс ShapeMatrix, который хранит матрицу, отвечающую за внешний вид ракеты.
Anonymous #2571395
Уровень 1
22 марта, 17:46
😎
Vladimir Frontend Developer
10 марта, 17:17
Hello, world. Нужна помощь. Установил плагин на intelijidea ОС: ubuntu 20.04. Поставил javaFX11, вообщем, всё запускается всё хорошо, но после проверки задачи IDE закрывается. В чем может быть проблема, где искать? Спасибо за внимание
Mikhail Kuragin
Уровень 19, Красноярск, Россия
25 июня, 17:10
Такая же проблема. IDE закрывается именно при тестировании игр.
Flexo Bending Unit #3370318
26 февраля, 10:02
Старт: 26 февраля 2021, первое задание выполнили 1385 учеников, включая меня 26.02: 2. 1220, 3. 1179, 4. 1120 28.02: 5. 1044, 6. 1000 01.03: 7. 957 04.03: 8. 945, 9. 932, 10. 911, 11. 899 06.03: 12. 878, 13: 866 09.03: 14. 854, 15. 849, 16. 843, 17. 834 10.03: 18. 825, 19. 821, 20. 808 12.03: 21. 806, 22. 806, 23. 778 С завершением задачи меня!
pavlusha71
Уровень 20
19 января, 06:35
на первом же шаге какие-то траблы при тестовом запуске выводит поле с разбивкой 64х64 и в то же время на валидации говорит, что класс не наследует от класса Game. хотя текст и тест говорят об обратном import com.javarush.engine.cell.*; public class MoonLanderGame extends Game {
Ismagilova Antonina
Уровень 23, Новосибирск, Россия
20 апреля, 05:44
опечатка может быть где-то. тоже сталкивалась с такой ошибкой.потом обнаружила,что не верно написала
лев
Уровень 0
7 декабря 2020, 17:45
не работает
Евгений
Уровень 27, Санкт-Петербург
6 января, 21:33
Что конкретно не работает?
Юрий
Уровень 19, Москва, Россия
29 сентября 2020, 12:29
Есть знающие, как запретить программе в опубликованных играх, реагировать на клавиши кроме SPACE? В IJ IDEA все нормально)