Простите.. учу С++ самостоятельно.. вот написал программу но не могу понять еще один вопрос
Смысл программы в том что Банк у одного и другого 100. Потом ставятся ставки. Так чтоб были одинаковы ставки. Затем кидаются кубики и у кого больше тот заберает ставку. Программа написана внизу, но прикол в том что я в цикле поставил если хоть один игрок наберет меньше 0 очков, то выход из цикла while (SumIgr2 >= 0 || SumIgr1 >= 0); Но он не выходит.. можете проверить.. проиграв один из игроков он все равно стоит в цикле и кидает кубики.. я понимаю можно иф написать в циклке и будет выходить, но хочется все таки понять если я ошибся там где. Спасибо
int main()
{
int SumIgr1 = 100, SumIgr2 = 100, stavka1, stavka2, ObshayaStavka;
Это не нужно: else if (a == b) { SumIgr2 = SumIgr2; SumIgr1 = SumIgr1; } Зачем лишний код? Дальше меня смутил ещё один момент: while (SumIgr2 >= 0 || SumIgr1 >= 0); Это означает если у игрока 2 или 1 есть больше или равной 0 баллу количества баллов то игра продолжается. Допустим у меня 0 баллов и за какой счёт мне играть спрашивается? Но это моё сугубо субъективное мнения. И ещё, суть проблемы заключается в условии do {} while(); . Цикл do выполняется хотя бы один раз не зависимо от условия. Do (делает) один раз и потом проверяет если условия верно (и уже второй раз выполняет скрипт с проверкой). Другими словами, игрок может играть в эту игру ещё один раз после того как у него закончиться баллы. Была у Игрока 1 10 баллов, поставил ставку в 10 баллов, проиграл и следовательно у него 0 баллов. Но поскольку есть условия while (SumIgr2 >= 0 || SumIgr1 >= 0); то игрок может играть и делать ставку даже когда у него 0 баллов, не вижу скрипта который бы запрещал бы игроку играть в подобном случае. Ну дальше у игрока остаётся -X баллов и он может сыграть ещё раз, потому что тут стоит цикл do{}while();. Подробнее про цикл do{}while();: cppstudio.com/post/361/