Я пишу программу, которая позволяет пользователю играть в головоломки судоку. Каждая головоломка представляет собой 2d массив структур, но я не могу инициализировать массив за один раз. Есть ли способ сделать это без необходимости инициализации каждой части структуры для каждого элемента массива? Вот некоторые из моего кода.C++ Инициализация 2D-массива структур
class Sudoku {
protected:
struct Puzz {
int Ans;
// IsClue is used further in the program so the user cannot change the clues given.
bool IsClue;
};
Puzz Puzzle[9][9]; // I chose a 2D array so represent the 9 rows and columns of a sudoku puzzle
};
Я пробовал некоторые из следующих действий:
Puzzle[][9] = {{0, false, 8, true, 0, false, 6, true, 7, true, 0, false, 0, false, 0, false, 0, false}, //...etc, going on for each row
Puzzle[9][9] = // etc, etc, but I get an error saying "Expected an expression
Это единственный способ, чтобы инициализировать каждый элемент сделать
Puzzle[x][y].Ans = x; Puzzle[x][y].IsClue = true/false;?
Сторона примечания: Некоторые головоломки судоку имеют более одного решения - не говорите игроку, что они ошибаются, если их решение не соответствует ожидаемому. – immibis
Может быть проще иметь массив с размером 9x9 с начальной конфигурацией и отдельный массив 9x9 с тем, что пользователь имеет до сих пор. –