Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
gafni
0 / 0 / 0
Регистрация: 08.08.2013
Сообщений: 5
#1

Мини боевка при использовании do while - C++

08.08.2013, 02:47. Просмотров 390. Ответов 3
Метки нет (Все метки)

Здравствуйте, делаю для себя текстовую рпг, вот возникла проблемка с боевой системой, не могу понять почему цикл не выполняется до конца, помогите оптимизировать.)

p.s. здоровье, атака, защита сделана с помощью классов

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    int hp1 ; // переменная здоровья монстра
    int hp2 ; // переменная здоровье героя
    do
    {
        hp1 = ( monster.gethp() + monster.getdef() ) - ( hero.getattack() ) ; // первая стадия. Монстр нападает на героя
        monster.sethp(hp1); // присвоение нового значения хп монстру
 
        if (hp1 != 0){
        hp2 = ( hero.gethp() + hero.getdef() ) - ( monstr.getattack() ) ; // вторая стадия. Нападение героя на монстра. После неё вроде должна запускаться первая стадия если значение хп героя > 0. Но увы.
        hero.sethp(hp2); // присвоение нового значения хп герою.
        }
        else
            if (hp1 == 0){
                cout << "Win!";
            }
            else 
                cout << "Game Over!";
    }
    while(hp1 == 0 || hp2 == 0);
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2013, 02:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Мини боевка при использовании do while (C++):

При использовании оператора GOTO зацикливается программа при введении букв. - C++
Приветствую всех новых знакомых в этом храме программирования. Я новичек, пытаюсь программировать в С++ недавно. У меня возник вопрос...

Баг при использовании класса string при записи в бинарный файл - C++
При записи в бинарный файл пользовательского класса, всё отлично отрабатывает, но, если в классе использовался класс string, то в конце...

При использовании getline ввод при Enter заканчивается только после пробела - C++
int main() { string slovo; double n; while(slovo != &quot;пока&quot; ) { getline (cin,slovo,' '); if (slovo ==...

Ошибка при использовании gets() - C++
Не могу понять, почему при второй итерации цикла программа выдает ошибку и закрывается при запросе фамилии. #include &quot;stdafx.h&quot; ...

Ошибка при использовании % - C++
(условие задачи, код и ошибки при коомпиляции на скрине) Здравствуйте, задача простая, как и ее решение, на фортране бы уже пять раз...

Ошибка при использовании write() - C++
Ребят есть код, запись информации в файл. #include &lt;stdio.h&gt; #include &lt;string&gt; #include &lt;iostream&gt; #include &lt;locale.h&gt; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kordn
156 / 135 / 35
Регистрация: 18.05.2013
Сообщений: 289
08.08.2013, 03:04 #2
Цитата Сообщение от gafni Посмотреть сообщение
while(hp1 == 0 || hp2 == 0);
Исправь на
C++
1
 while((hp1 >= 0) && (hp2 >= 0));
Добавлено через 10 минут
Ну как, работает?
А то нет возможности самому проверить просто
1
gafni
0 / 0 / 0
Регистрация: 08.08.2013
Сообщений: 5
08.08.2013, 03:09  [ТС] #3
Цитата Сообщение от Kordn Посмотреть сообщение
Исправь на
C++
1
 while((hp1 >= 0) && (hp2 >= 0));
Добавлено через 10 минут
Ну как, работает?
А то нет возможности самому проверить просто
Благодарю что показали где ошибку искать)

C++
1
while(hp1 > 0 && hp2 > 0);
Так вот цикл выполняется идеально, спасибо)
0
Kordn
156 / 135 / 35
Регистрация: 18.05.2013
Сообщений: 289
08.08.2013, 03:15 #4
gafni, рад был помочь!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.08.2013, 03:15
Привет! Вот еще темы с ответами:

Исключение при использовании алгоритма - C++
Добрый день, помогите разобраться с исключением: Необработанное исключение по адресу 0x013C0F02 в ConsoleApplication2.exe: ...

Ошибка при использовании new[] / delete[] - C++
Здравствуйте. Пишу учебную программу, моделирующую движение лифта (если кто учебник Дейтелов читал, тот поймет :) ). Для начала приведу...

Затруднение при использовании SYSTEMTIME - C++
Здравствуйте. У меня возникла проблема с данной простой программкой, ее суть - в изменении даты на некоторый срок и в последующем...

Ошибка при использовании delete - C++
И снова здравствуйте! Пишу раз третий.Я уже готов убицца ап сцену изза этого delete.Я не понимаю что не так делаю: class CMenu { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.08.2013, 03:15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru