Итак, я создаю программу, в которой вы можете добавлять шарики в сумку.Вы выбираете нужный цвет, затем количество шариков, которое хотите добавить, и затем, если мрамор этого цвета либо крутой, скучный, либо странный.Так что если вы хотите добавить 10 синих шариков, а затем вы выбрали круто.Всего у вас будет десять шариков и десять шариков синего и холодного цвета.Я иду, чтобы удалить случайный мрамор из мрамора, который хранится уже после добавления.По некоторым причинам, это не работает вообще.Я пытаюсь получить случайное число и назначить это случайное описание текущего мрамора, который уже был добавлен.Скажем, если сгенерированное случайное число равно 1, оно удалит «красный прохладный мрамор».Я, очевидно, не могу удалить шарик, который не был добавлен, поэтому я добавил петлю do - while
, которая в основном повторяет цикл через генератор случайных чисел, пока не найдет число, которое удовлетворяет критериям.Вот мой код, есть мысли?:
Я попытался изменить положение моего цикла Do while.
void remove() {
do {
srand(time(0));
randomnum = (rand () % max) +1 ;
if (randomnum == 1 && redcool > 0) {
red--;
redcool--;
cout << "The random marble removed was a red and cool marble" <<endl;
}
else if (randomnum == 2 && redweird > 0) {
cout << "The random marble removed was a red and weirdl marble" <<endl;
red--;
redweird--;
}
else if (randomnum == 3 && redboring > 0) {
cout << "The random marble removed was a red and boring marble" <<endl;
red--;
redboring--;
}
else if (randomnum == 4 && greencool > 0) {
cout << "The random marble removed was a green and cool marble" <<endl;
green--;
greencool--;
}
else if (randomnum == 5 && greenweird > 0) {
cout << "The random marble removed was a green and weird marble" <<endl;
green--;
greenweird--;
}
else if (randomnum == 6 && greenboring > 0) {
cout << "The random marble removed was a green and boring marble" <<endl;
greenboring--;
green--;
}
else if (randomnum == 7 && bluecool > 0) {
cout << "The random marble removed was a green and cool marble" <<endl;
blue--;
bluecool--;
}
else if (randomnum == 8 && blueboring >0) {
cout << "The random marble removed was a blue and cool marble" <<endl;
blue--;
blueboring--;
}
else if (randomnum == 9 && blueweird > 0) {
cout << "The random marble removed was a blue and weird marble" <<endl;
blue--;
blueweird--;
}
}while (randomnum == 1 && redcool > 0 || randomnum == 2 && redweird >0 || randomnum == 3
&& redboring > 0 || randomnum == 4 && greencool > 0 || randomnum == 5 && greenweird >0 || randomnum == 6
&& greenboring > 0 || randomnum == 7 && bluecool > 0 || randomnum == 8 && blueweird >0 || randomnum == 9
&& blueboring > 0);
bag--;
Ожидаемый результат сказал бы, что я добавил десять шариков синего и прохладного цвета.Когда я собираюсь убрать случайный мрамор, он будет уменьшать голубой и холодный мрамор, потому что это единственная ценность в сумке.В настоящее время ничего даже не удаляется.