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

Народ, чет с while... - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
bbo0ss
1 / 1 / 0
Регистрация: 23.03.2011
Сообщений: 19
26.03.2011, 20:00     Народ, чет с while... #1
Тут проблемка, захотел написать миниатюрную игрушечку на с++ и в єпизоде боя использовал
do-while... и вот вроде кк все нормально, оба бьються, но бой не коньчается... просто хп в - уходит и считай так до бесконечности... если ктот шарит прошу помочь... вот мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
do
 {   int r,d;
srand(time(&t));
d=rand()%10+10;    
hp-=d;
cout<<"Противник нанес вам "<<d<< " урона. у вас осталось "<<hp<<" здоровья"<<endl;
cout<<"Чтобы ударить введите 1:"<<endl;
cin>>m;
if(m==1)
{cout<<"Вы ударили врага."<<endl;
srand(time(&t));
 r=rand()%10+15;
hp2-=r;
cout<<"Вы нанесли "<<r<<" урона."<<endl;
cout<<"У врага осталось "<<hp2<<" здоровья"<<endl;
}
if(hp2<=0)
cout<<"Вы выграли!"<<endl;
exp+=300
}
while(hp<0);
cout<<"Вы проиграли!Вас убил противник!"<<endl;
}
Добавлено через 2 минуты
кстати чет код вправо сместился, тык что прокрутите чуть вправо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2011, 20:00     Народ, чет с while...
Посмотрите здесь:

C++ Народ ПОБЛЕМА С Экраном на Borland C++ 5.02
Чет не то с iostream C++
C++ Народ как работать с Randomom
C++ Срочно Народ помогите!
C++ Народ нужно обьяснить значение
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
14004 / 8835 / 1234
Регистрация: 24.12.2010
Сообщений: 16,014
26.03.2011, 20:02     Народ, чет с while... #2
bbo0ss, Если ты подвинешь содержательную часть кода чуть левей, может и удастся что-нибудь понять

Добавлено через 1 минуту
Иначе Бой никогда не кончится. Но в этом тоже есть своя фишка.
napalm2005
1 / 1 / 0
Регистрация: 08.12.2010
Сообщений: 40
26.03.2011, 20:03     Народ, чет с while... #3
Цитата Сообщение от bbo0ss Посмотреть сообщение
C++
1
while(hp>0)
мож так поментяь надо...
bbo0ss
1 / 1 / 0
Регистрация: 23.03.2011
Сообщений: 19
26.03.2011, 20:04  [ТС]     Народ, чет с while... #4
более менее?*)

Добавлено через 1 минуту
так вроде же надо так: когда хп меньше 0 то вы проиграли и выход изцыкла... так я понимаю???
napalm2005
1 / 1 / 0
Регистрация: 08.12.2010
Сообщений: 40
26.03.2011, 20:08     Народ, чет с while... #5
Цитата Сообщение от bbo0ss Посмотреть сообщение
более менее?*)

Добавлено через 1 минуту
так вроде же надо так: когда хп меньше 0 то вы проиграли и выход изцыкла... так я понимаю???
вообще-то while(hp>0) -- означает до тех пор пока hp>0 цикл работает; hp <=0 - цикл завершает работу
Либо в твоем цикле hp должно увеличиваться.
bbo0ss
1 / 1 / 0
Регистрация: 23.03.2011
Сообщений: 19
26.03.2011, 20:10  [ТС]     Народ, чет с while... #6
да уже попробывал... чет не выходит(((
uggway
219 / 133 / 9
Регистрация: 12.04.2010
Сообщений: 248
26.03.2011, 20:10     Народ, чет с while... #7
bbo0ss, while == "пока", т.е. читая выражение
C
1
2
3
do{
//....
}while(hp > 0);
по-русски, получаем:
выполнять до тех пор пока hp > 0.
Вот когда hp станет равно или меньше нуля цикл закончится
И не нужно каждый раз использовать srand
bbo0ss
1 / 1 / 0
Регистрация: 23.03.2011
Сообщений: 19
26.03.2011, 20:16  [ТС]     Народ, чет с while... #8
не
uggway, и
napalm2005, попробывал уже и так... чет все равно уходит в - и бой вечный...

Добавлено через 2 минуты
непонятно кароч... чет цыкл ваще не как заканчиваться не хочет(
napalm2005
1 / 1 / 0
Регистрация: 08.12.2010
Сообщений: 40
26.03.2011, 20:16     Народ, чет с while... #9
Цитата Сообщение от bbo0ss Посмотреть сообщение
не
uggway, и
napalm2005, попробывал уже и так... чет все равно уходит в - и бой вечный...
Ну, hp то все равно положительным быть...
uggway
219 / 133 / 9
Регистрация: 12.04.2010
Сообщений: 248
26.03.2011, 20:17     Народ, чет с while... #10
а где определено hp?
оно случаем не unsigned ... у тебя?
Иначе все должно работать
napalm2005
1 / 1 / 0
Регистрация: 08.12.2010
Сообщений: 40
26.03.2011, 20:19     Народ, чет с while... #11
C++
1
2
3
4
if(hp2<=0)
{cout<<"Вы выграли!"<<endl;
exp+=300;
break;}
а если так.
bbo0ss
1 / 1 / 0
Регистрация: 23.03.2011
Сообщений: 19
26.03.2011, 20:24  [ТС]     Народ, чет с while... #12
нет хп у меня поставлено в самом начале:
C++
1
2
3
4
5
6
7
8
9
int x=0; //Выбор
int hp=100; //Характеристики
int lvl=1; //Лвл
int shmot=0;//Шмот
int v; //Выбор 2
int exp=0;
int m; //чтобы ударить
float hp2=80; //здоровье врага
time_t t=30;
Здоровье враза я поставил во флот так как там time_t t; с ним в инте не пашет...

Добавлено через 48 секунд
napalm2005, в if незя же ставить break.

Добавлено через 1 минуту
лан выпосотрите еще, мб чет увидете, чего я не вижу... то шо мя уже гонят...а я завтра тему посотрю.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2011, 20:26     Народ, чет с while...
Еще ссылки по теме:

народ помогите с Borland C++ на С++ переделать C++
C++ Народ спасайте, на счет теста
Народ книгу какую брать? C++

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

Или воспользуйтесь поиском по форуму:
napalm2005
1 / 1 / 0
Регистрация: 08.12.2010
Сообщений: 40
26.03.2011, 20:26     Народ, чет с while... #13
Цитата Сообщение от bbo0ss Посмотреть сообщение
napalm2005, в if незя же ставить break.
Это, где ты такое видел?...
Yandex
Объявления
26.03.2011, 20:26     Народ, чет с while...
Ответ Создать тему
Опции темы

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