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

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

Восстановить пароль Регистрация
 
gafni
0 / 0 / 0
Регистрация: 08.08.2013
Сообщений: 5
08.08.2013, 02:47     Мини боевка при использовании do while #1
Здравствуйте, делаю для себя текстовую рпг, вот возникла проблемка с боевой системой, не могу понять почему цикл не выполняется до конца, помогите оптимизировать.)

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);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kordn
 Аватар для Kordn
152 / 131 / 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);
Так вот цикл выполняется идеально, спасибо)
Kordn
 Аватар для Kordn
152 / 131 / 35
Регистрация: 18.05.2013
Сообщений: 289
08.08.2013, 03:15     Мини боевка при использовании do while #4
gafni, рад был помочь!
Yandex
Объявления
08.08.2013, 03:15     Мини боевка при использовании do while
Ответ Создать тему
Опции темы

Текущее время: 20:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru