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

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

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

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

08.08.2013, 02:47. Просмотров 386. Ответов 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);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2013, 02:47     Мини боевка при использовании do while
Посмотрите здесь:

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

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

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

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

Ошибка при использовании SendKeys - C++
При нажатии на button5 окно программы должно свернуться и в окне, которое было позади него (блокнот), написать &quot;Hello world&quot;: #pragma...

Ошибка при использовании reverse_iterator - C++
std::array&lt;int, 7&gt; m = { 1, 2, 3, 4, 5, 6, 7 }; vector&lt;int&gt; v(m.begin(), m.end()); vector&lt;int&gt;::iterator pos = find(v.begin(),...

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

C++
1
while(hp1 > 0 && hp2 > 0);
Так вот цикл выполняется идеально, спасибо)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.08.2013, 03:15     Мини боевка при использовании do while
Еще ссылки по теме:

Ошибка при использовании size_t - C++
Выдает много ошибок связанные с использованием typedef std::size_t size_type; #include &lt;iostream&gt; #include &lt;cstring&gt; #include...

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

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

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

Ошибки при использовании stringstream - C++
Текст программы: #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; int main()...

Ошибка при использовании STL - C++
Начал знакомиться с STL, и возникли проблемы. Вот суть: Имеется дочерний класс, одно поле которого является динамическим массивом. При...


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

Или воспользуйтесь поиском по форуму:
Kordn
154 / 133 / 35
Регистрация: 18.05.2013
Сообщений: 289
08.08.2013, 03:15     Мини боевка при использовании do while #4
gafni, рад был помочь!
Yandex
Объявления
08.08.2013, 03:15     Мини боевка при использовании do while
Ответ Создать тему
Опции темы

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