JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/не понимаю. Почему не работает?объясните пожалуйста
Егор Пестов
33 уровень
  • 13.01.2023
  • 182просмотров
  • 2комментариев

не понимаю. Почему не работает?объясните пожалуйста

Вопрос по задаче Диабло (4)
Java Syntax,  7 уровень,  6 лекция
Обсуждается


Амиго сразился с Диабло, осталось определить — победил Амиго или нет. Для этого создадим публичный статический метод isAmigoWin(), который будет возвращать true, если Амиго победил, и false в противном случае.
Далее в методе main вызовем метод isAmigoWin. Если метод вернул true, то нужно вывести в консоль фразу из переменной winPhrase, иначе — вывести фразу из переменной loosePhrase.

Требования:
  • В классе Solution должен быть публичный статический метод isAmigoWin(), который возвращает значение типа boolean.
  • Метод isAmigoWin() должен возвращать true, если у Диабло нет "жизней" или false, если Диабло жив.
  • В методе main нужно вызвать метод isAmigoWin() после вызова метода battle().
  • Если метод isAmigoWin() вернул true, то нужно вывести в консоль фразу из переменной winPhrase, иначе вывести фразу из переменной loosePhrase.
package com.javarush.task.pro.task06.task0622; import java.util.Scanner; /* Диабло (1) */ public class Solution { public static boolean isAmigoWin(){ if (diabloLives == 0) return true; else if (amigoLives == 0) return false; } public static void battle(){ if ((amigoLives == 0) || (diabloLives == 0)) return; if (amigoAttacks() == diabloDefends()){ System.out.println(diabloDefendPhrase); amigoLostLife(); }else{ System.out.println(amigoAttackPhrase); diabloLostLife(); } } public static void amigoLostLife(){ amigoLives--;} public static void diabloLostLife(){ diabloLives = diabloLives - 3; } public static int amigoAttacks(){ return getRandomNumber(3); } public static int diabloDefends(){ return getRandomNumber(3); } public static int amigoLives = 9; public static int diabloLives = 9; public static String getFirstPositionPhrase = "Помоги Амиго определить, где спрятался Диабло? Введи номер позиции (1, 2, 3 или 4):"; public static String getPositionPhrase = "Диабло не обнаружен. Давай попробуем снова. Введи номер позиции (1, 2, 3 или 4):"; public static String findDiabloPhrase = "Амиго обнаружил Диабло."; public static String diabloDefendPhrase = "Амиго атакует. Диабло отбил атаку Амиго и нанес ответный удар."; public static String amigoAttackPhrase = "Удар Амиго достиг цели. Диабло потерял 3 жизни."; public static String winPhrase = "Амиго одержал победу над Диабло и выбил из его головы загадочный кристалл."; public static String loosePhrase = "Диабло победил Амиго."; public static int diabloPosition; public static void findDiablo(){ System.out.println(getFirstPositionPhrase); Scanner scan = new Scanner(System.in); while (true) if (diabloPosition==scan.nextInt()){ System.out.println(findDiabloPhrase); break; } else { System.out.println(getPositionPhrase);} } public static void main(String[] args) { diabloPosition = getRandomNumber(4); findDiablo(); battle(); if (isAmigoWin()) System.out.println(winPhrase); else System.out.println(loosePhrase);//напишите тут ваш код } public static int getRandomNumber(int range) { return (int) (Math.random() * range) + 1; } }
0
Комментарии (2)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Микола[Neuronsoft]
Уровень 12
13 января 2023, 18:06
Привіт друже, переглянь цей метот - isAmigoWin(), та перечитай пункт валідації уважно. Метод isAmigoWin() должен возвращать true, если у Диабло нет "жизней" или false, если Диабло жив.
public static boolean isAmigoWin(){
    if (diabloLives == 0)
        return true;
    else if (amigoLives == 0)
        return false;
    }
if (diabloLives == 0) { return true;}
він повертає true коли "ДІіабло" мертвий, тут все правильно.
else if (amigoLives == 0) {return false}
а тут він повертає false коли "Аміго" не правильно, виходить подарував йому безсмертя.🤖
0
Михаил
Уровень 41
13 января 2023, 16:09
isAmigoWin() метод не верен. Если у тебя diabloLives == 0 вернет false и amigoLives == 0 вернет false то в методе ничего не возвращает. А там в конце должен быть дефолт.
+1
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush