Как после проигрыша копейщиков добавить ещё одного и начать битву снова?

Нужно чтоб программа проводила битвы прибавляла копейщиков пока они не убьют дракона.

public static void main(String[] args) {
    int zdorovie_drakona = 500;
    int ataka_brakona = 55;
    int zdorovie_kop = 10;
    int ataka_kop = 10;
    int kopeyhiki = 11;
    int sum = kopeyhiki * zdorovie_kop;

    System.out.println("Копейщиков: " + kopeyhiki);
    do {
        if (sum > 0 || zdorovie_drakona <= 0) {
            System.out.println("Копейщики атакуют (ущерб: " + sum + ") - у дракона осталось " + (zdorovie_drakona - sum) + " HP");
            zdorovie_drakona = zdorovie_drakona - sum;
            sum = sum - ataka_brakona;
            int kopsum = sum / zdorovie_kop;
            System.out.println("Дракон атакует (ущерб: " + ataka_brakona + ") - осталось " + (kopsum) + " копейщиков");
            if ((zdorovie_drakona - sum) <= 0) {
                System.out.println("Копейщики атаковали, дракон побеждён!");
                break;
            } else if (kopsum <= 0) {
                System.out.println("Дракон победил " + kopeyhiki + " копейщика, добавим еще одного и попробуем снова.");
                kopeyhiki++;
            }
        }
    } while (zdorovie_drakona >= 0);
}

помогите я не знаю как после проигрыша копейщиков добавить ещё одного и начать битву снова.


Ответы (1 шт):

Автор решения: Vadik

В случае проигрыша сделайте выход из цикла break. Чтобы программа начиналась заново, оберните весь код программы в бесконечный цикл while (true).

При этом переменную kopeyhiki нужно вынести из цикла, а в случае победы над драконом завершить программу с помощью return.

Схематично получится так:

int kopeyhiki = 11;
while (true) {
    int zdorovie_drakona = 500;
    while (true) {
        if (win) {
            System.out.println("Копейщики атаковали, дракон побеждён!");
            return;
        }
        if (fail) {
            System.out.println("Дракон победил " + kopeyhiki + " копейщика.");
            kopeyhiki++;
            break;
        }
    }
}
→ Ссылка