Я хочу создать программу, которая будет произвольно генерировать плату судоку для воспроизведения. Для тех, кто не знаком с игрой, вам предоставляется игровая площадка размером 9x9, в основном пустые пространства и некоторые заполненные номера. Чтобы завершить ее, вы должны заполнить пустые квадраты, чтобы в каждой строке, столбце и 3x3 было 1-9 квадрат, но только один раз.Судопищевая логика генерации доски в Java
Способ, которым я в настоящее время представляю, это использовать 2-мерный массив. Я использую цикл for внутри цикла for, чтобы заполнить его, убедившись, что число, идущее в квадрат, никогда не используется в той же строке или столбце.
Проблема, с которой я столкнулась, заключается в том, как проверить, что номер уже используется в 3x3 части сетки. Я думал об использовании 3D-массива, а третье измерение - это то, где хранятся данные 3x3, но я не знаю простого способа решить, какой массив нужно проверить для текущего квадрата.
Я также не знаю точно, если случайно генерирует плитки так, как я всегда буду производить полную доску. Я волнуюсь, что он может попасть в одну из последних нескольких плиток и обнаружить, что число квадратиков между 1 и 9 не будет соответствовать квадрату, потому что оно уже используется. Я не знаю, как проверить, возможно ли это.
Я делал минимальное количество других вопросов по теме, но не хочу случайно встретить ответ, мне нужен указатель в правильном направлении. Также никто из них не был напрямую связан с тем, что я прошу.
Надеюсь, то, что я прошу, имеет смысл, это немного сложно описать в тексте. Я был бы признателен, если бы вы могли дать мне указатель в правильном направлении, не отвечая мне. Также, если вы мало знаете о судоку (почему вы нажмете на этот вопрос), вы можете сыграть его здесь: http://www.websudoku.com/ Если вам нужно уточнение, я отвечу на комментарии так быстро, как смогу.
Ofcoz Есть слишком много вещей, с которыми вы будете в замешательстве. Я думаю, если вы действительно не можете понять это самостоятельно. Вам лучше проверить сообщение, например [this] (http://stackoverflow.com/questions/6924216/how-to-generate-sudoku-boards-with-unique-solutions) – kenshinji