Хотя это не ответ на ваш точный вопрос, это очень важно для вашей программы -
Я прочитал в Stanford CS106 Course Reader, доступном в PDF , что int num = rand() % 6 + 1;
- неправильный способ получить случайное число от 1 до 6.
Я цитирую читателя курса:
Проблема здесь в том, что rand()
гарантирует только то, что полученное значение равномерно распределено в диапазоне от 0 до RAND_MAX. Однако нет никакой гарантии, что остатки от деления на шесть будут случайными.
Они также объясняют, как сделать это правильно, что включает четыре различных шага (нормализация - масштабирование - перевод - преобразование).
Я подумал, что, поскольку вы пытаетесь разобраться в генераторе случайных чисел, вам может понадобиться это знать.
Удачного кодирования!