Очень жаль, если это слишком долго - я вчера отправил вопрос об игровой программе, которую пытаюсь написать, и с помощью некоторых людей мне удалось довольно быстро все выяснить.
Очень большая часть программы завершена, но у меня есть еще одна странная задача. У меня есть функция printGrid, которая печатает один случайный элемент из каждых 16 групп символов из массива char. Например (это очень уродливо - извините, пожалуйста, мой код новичка):
char gameZero[outer_size][inner_size] = {
{'A','A','C','I','O','T'}, {'A','H','M','O','R','S'},
{'E','G','K','L','U','Y'}, {'A','B','I','L','T','Y'}, {'A','C','D','E','M','P'},
{'E','G','I','N','T','V'}, {'G','I','L','R','U','W'}, {'E','L','P','S','T','U'},
{'D','E','N','O','S','W'}, {'A','C','E','L','R','S'}, {'A','B','J','M','O','Q'},
{'E','E','F','H','I','Y'}, {'E','H','I','N','P','S'}, {'D','K','N','O','T','U'},
{'A','D','E','N','V','Z'}, {'B','I','F','O','R','X'}
};
void printGrid() {
mt19937 gen(time(nullptr));
uniform_int_distribution<int> random_inner(0, inner_size - 1);
int n = random_inner(gen);
cout << "+---+---+---+---+\n";
for (int i = 0; i < 4; i++)
cout << "| " << gameZero[i][n] << " ";
cout << "\n+---+---+---+---+\n";
for (int i = 4; i < 8; i++)
cout << "| " << gameZero[i][n] << " ";
cout << "\n+---+---+---+---+\n";
for (int i = 8; i < 12; i++)
cout << "| " << gameZero[i][n] << " ";
cout << "\n+---+---+---+---+\n";
for (int i = 12; i < 16; i++)
cout << "| " << gameZero[i][n] << " ";
cout << "\n+---+---+---+---+\n";
}
Это напечатает игровую доску 4x4 для просмотра пользователем. Сейчас я пытаюсь написать что-то вроде функции toString, которая берет случайные числа, сгенерированные в printGrid, и выводит их в виде одной строки без пробелов. Проблема, которую я пытаюсь обернуть, заключается в том, что у меня есть набор персонажей, который меняется каждый раз, когда игрок начинает новую игру. Эти 16 символов происходят из набора из 16 кубиков, каждый из которых содержит 6 символов. Является ли единственный способ сделать возможным сохранение этих новых случайно выбранных символов в пустом массиве, чтобы пользователь мог просто распечатать их с помощью функции toString при желании? Еще одно препятствие, с которым мне придется столкнуться, - это удаление массива каждый раз, когда пользователь хочет начать заново. Если это так, могу ли я сохранить их в векторе и использовать что-то вроде vector :: clear, чтобы решить это?
Текущий вывод функции printGrid:
+---+---+---+---+
| T | M | E | L |
+---+---+---+---+
| A | V | L | S |
+---+---+---+---+
| E | A | Qu| F |
+---+---+---+---+
| E | D | N | O |
+---+---+---+---+
Желаемый вывод функции toString Я хотел бы создать:
TMELAVLSEAQuFEDNO
Очень жаль, если это слишком много для чтенияили слишком запутанно - я работаю над этим почти весь день, и мой мозг сейчас немного жарен. Любые советы с благодарностью!