Генератор судоку Java (простейшее решение)

В моем последнем вопросе здесь: Судоку - Тестирование регионов ] Я спросил, как проверить области 3x3, и кто-то смог дать мне удовлетворительный ответ (хотя это потребовало МНОГО повозки, чтобы заставить его работать так, как я хотел, поскольку они не упомянули, что такое класс table_t.)

Я закончил проект и смог создать генератор судоку, но мне кажется, что он надуманный . И мне кажется, что я как-то слишком усложнил вещи, применив метод грубой силы для создания головоломок.

По сути, моя цель - создать сетку 9x9 с областями 9-3x3. Каждая строка / столбец / регион должны использовать числа от 1 до 9 только один раз.

Я решил эту проблему с помощью двумерного массива для случайного размещения чисел по 3 строки за раз. Как только 3 ряда будут выполнены, он проверит 3 ряда, 3 области и каждый вертикальный столбец до 3-й позиции. Во время итерации он будет делать то же самое, пока массив не будет заполнен, но из-за того, что я заполнял rand и проверял каждую строку / столбец / регион несколько раз, это было очень неэффективно.

Есть ли «проще» "Как это сделать с любым типом конструкции данных, кроме 2-мерного массива?" Есть ли более простой способ проверить каждую область 3x3, который мог бы лучше совпадать с проверкой по вертикали или горизонтали? С точки зрения вычислений я не вижу слишком много способов сделать это более эффективно без резкого увеличения размера кода.

6
задан Community 23 May 2017 в 12:26
поделиться