Битва роботов

  • 16
  • Недоступна
Юный робот решил запрограммировать сам себя на бой с другим роботом по имени Сгибальщик-2. Однако до конца дела пока не довёл. Теперь это ваша проблема… Ох, простите, ваша задача. Впрочем, не стоит беспокоиться: битвы роботов отличаются от драк тех, кто из плоти и крови ещё и своей логичностью.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (402)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
🦔 Виктор админ Java Android канала в telegram @LetsCodeItExpert
3 января, 01:36
Ну что, пора завершать 13 уровень, поехали: 1. Переносим всю механику сражения из класса робота в абстрактный класс вместе со статической переменной и имплементированными интерфейсами (чтобы решить ошибку с именами роботов, я также скопировал геттер имени и сделал его абстрактным без реализации). 2. Класс робота наследуем от абстрактного, оставляя только имя, конструктор и геттер. 3. Добавляем новую часть тела по аналогии с уже существующими в соответствующем классе. 4.1. Наверное, самый каверзный момент, потому что я как и многие добавил новую часть робота в конец механики сражения и наблюдал как после нескольких ударов роботы впадают в ступор null : ( 4.2. Дело в том, что переменная счётчика ударов одна на весь абстрактный класс и в реализации защиты счётчик опережает атаку на единицу из-за чего мы перескакиваем четвёртый удар и остаёмся с нулём во всех смыслах (можно отследить всё в дебаггере). 4.3. Я просто завёл две новые, отдельные константы для подсчёта атак и защит (можно ещё со случайными значениями поиграться). 5. Всё получится! -- tlgrm: @LetsCodeIt | @SefoNotasi
Hardy 17 уровень, Белгородская обл.
4 января, 17:05
hitCount генерировал случайно в диапазоне 1-4. валидатор принял решение задачи.
Антон 15 уровень, Москва
30 декабря 2020, 21:11
При решении задачи вспомнился старый добрый Fallout-2 из конца 90-ых годов. Там тоже друг друга в разные части тела лупили и стреляли, хотя чаще - в какую попадется, без разбора. Зависал с этой игрой ночи на пролет, прямо как теперь с JavaRush :)
Mef1328 Java Developer
27 декабря 2020, 07:21
Побольше бы таких задач! Вроде и не сложно, но заставила подумать, и в то же время после её решения понимаешь, что не зря штаны просиживал и решал все предыдущие задачи.
Дмитрий 18 уровень
26 декабря 2020, 23:00
Последний else if (hitCount >= 4) там где счетчик +2 стоит. Иначе вылетает за пределы и будут все части null
Виктор 16 уровень
26 декабря 2020, 14:05
в attack() для груди поставил hitCount == 4 и в теле цикла hitCount =0; в defense() для груди поставил hitCount > 4 и в теле цикла hitCount =0; на вход метода doMove можно подавать переменные типа AbstractRobot, но тогда в классе AbstractRobot необходимо добавить строку
public abstract Object getName();
Это IDEA подсказала. Все работает
Андрей Овчаренко 17 уровень, Москва
12 декабря 2020, 18:58
https://github.com/krotname/task1328 вот моё решение с очками, рандомом и дракой до победителя
Алексей Software Developer
4 декабря 2020, 19:02
Долго ругался на то, что в результате не получается "грудь". Сначала написал == 4, а нужно было гораздо банальнее : ==0 ) Отличная задача))
Юлия 17 уровень, Москва
4 декабря 2020, 06:17
решаю задачи последних трех уровней вразнобой. взялась за эту, вкладок не заметила, так как эта задача попалась первая с вкладками. долго читала фразу "Для начала разберись в том, что делает код: это будет непросто". а на вкладке Solution всего ничего, разбираться не в чем. перенесла Solution в Idea, написала все недостающее сама из головы. валидация не прошла только в одном пункте: что-то не так с hitCount. а у меня вообще такой переменной нет. пришлось читать комменты, долго думала почему все знают про hitCount, а я нет... и только потом Зоркий Сокол обнаружила вкладки 😁
vzubkeviсh 16 уровень, Санкт-Петербург
16 ноября 2020, 14:19
интересная штука)
Алексей Мирный 38 уровень, Москва
4 ноября 2020, 06:09
Понравилась задача, такие задачи очень развивают!