Игра Space Invaders (32/34)

  • 3
  • Недоступна
Игра проиграна не только если корабль игрока уничтожен, но и когда вражеский флот вплотную приблизился к кораблю игрока. Чтобы определить координаты нижней границы вражеского флота, добавим метод getBottomBorder(). После разгрома всех врагов игрок побеждает. Для удобства добавим метод getShipsCount
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (8)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Mels Classic
Уровень 19, Санкт-Петербург, Россия
20 февраля, 14:02
У меня показывает только черный игровой экран. Валидацию проходит, но самой игры нет. Раньше все было видно, но потом случилось обновление плагина... обидно...
fog
Уровень 17
19 июня 2021, 10:50
Всего эту задачу решили 614 учеников. С прошлого шага отвалилось 4 человека.
Якунин Евгений Software Developer
4 июня 2021, 18:35
608. Отваливаются челики
Architect's Wife
Уровень 37
3 июня 2021, 06:47
в методе getBottomBorder() сначала нужно сделать проверку не пустой ли список и вернуть 0,0.
fog
Уровень 17
19 июня 2021, 13:36
У меня, в случае отсутствия кораблей противника возвращается минус бесконечность. И валидатор это тоже прекрасно принял. Вероятно, ему вообще всё равно что возвращается в этом случае - лишь бы не исключение...
Михаил Клименко
Уровень 25, Краснодар, Россия
Expert
29 июля 2020, 13:10
Всего эту задачу решили 298 учеников. Осталось два шага :) Во втором пункте нужно сделать дополнительную проверку, пустой ли список ships
Валерий Федотовских
Уровень 40, Москва, Россия
30 ноября 2020, 20:36
Например так:
return ships.stream().map(a -> a.y + a.height).reduce((s1, s2) -> s1 > s2 ? s1 : s2).orElse(0d);
2DaMoon
Уровень 41
14 ноября 2021, 20:07
Так красивее)))
return ships.stream()
                .mapToDouble(el -> el.y + el.height)
                .max().getAsDouble();