Как составить свое судоку

Шаги

  1. Изображение с названием Create a Sudoku Step 1

    1

    Начните с решения. Можете использовать сгенерированную на компьютере сетку цифр или уже опубликованную головоломку, но создать собственную вручную можно всего за несколько минут. Существует 6,670,903,752,021,072,936,960[1]
    правильных комбинаций. Вам нужна только одна.

    1. Draw a 9×9 grid made of 9 3×3 cells.
    2. Возьмите карандаш. Лучше карандаш, чем ручка, чтобы легче было исправить ошибки, которых не избежать.
    3. Впишите цифру 1 в любую клеточку в соответствии с правилами судоку.
    4. Повторяйте этот шаг, пока единичка не появится в каждом ряду, колонке и мини-квадратике 3х3.
    5. Проделайте это со всеми цифрами от 2 до 9. Возможно, здесь возникнут трудности. Если так, сотрите цифры, создавшие проблему. Попробуйте передвинуть пару одинаковых цифр из углов прямоугольника в другие углы, если там есть свободные клеточки. Попробуйте переставить 3 цифры в ряду, колонке или мини-квадратике. Если это решит проблему и не создаст новую, продолжайте.
  2. Изображение с названием Create a Sudoku Step 2

    2

    Разбросайте цифры в сетке. Возможно, вы начали с того, что вписали в первый ряд 123456789. Если не хотите, чтобы головоломка осталась такой, примените одну из нижеследующих процедур. В большинстве случаев из одной сетки могут получиться миллиарды других, но в некоторых особо симметричных случаях получатся только миллионы.[1]

    • Поменяйте местами ряды 1-3, 4-6 или 7-9.
    • Поменяйте местами колонки 1-3, 4-6 или 7-9.
    • Поменяйте местами блоки рядов 3×9.
    • Поменяйте местами блоки колонок 9×3.
    • Поверните сетку на 90, 180 или 270 градусов.
    • Отразите сетку по горизонтали, вертикали или диагонали.
    • Поменяйте местами цифры.
  3. Изображение с названием Create a Sudoku Step 3

    3

    Сотрите цифры, которые можно вычислить по оставшимся цифрами. Уберите хотя бы по одной из каждого ряда, колонки и блока.

  4. Изображение с названием Create a Sudoku Step 4

    4

    Продолжая усложнять головоломку, убирая все больше цифр, следите, чтобы он оставалась разрешимой. Здесь вам помогут онлайн-инструменты типа [1] и [2]. Если из-за недостающих цифр у головоломки появилось несколько решений или одно, но чрезвычайно сложное, вернитесь на несколько шагов назад и попробуйте убрать другие цифры.

  5. Изображение с названием Create a Sudoku Step 5

    5

    Когда посчитаете, чтоб убрали достаточно цифр, проверьте головоломку, решив ее вручную, чтобы убедиться в ее решаемости и сложности. Если вы довольны, сохраните головоломку и покажите ее миру.

  6. Изображение с названием Create a Sudoku Final

    6

    <finished>

    Реклама

Советы

  • Обычно в головоломках судоку дается 20-30 цифр.
  • Некоторым составителям судоку нравится, чтобы клетки с исходными данными обладали вращательной симметрией на 180 градусов. Чтобы добиться этого, убирая цифры в шаге 3, убирайте пары диагонально противоположных цифр.
  • Вариантов судоку очень много, и большую часть приведенных указаний легко обобщить. Решающий инструмент Scanraid поддерживает самые распространенные варианты, но если вы хотите поэкспериментировать с менее известными вариациями, придется проверять их вручную или создать собственный решающий механизм.
  • Существуют компьютерные программы для создания судоку, но лучшие головоломки были разработаны вручную.

Реклама

Что вам понадобится

  • Ручка
  • Карандаш
  • Ластик
  • Воображение
  • Запас терпения
  • Бумага
  • Надежда

Об этой статье

Эту страницу просматривали 22 959 раз.

Была ли эта статья полезной?


Download Article


Download Article

Sudoku is a fun way to pass the time, and it’s even more fun once you learn to make your own puzzles. Creating your own puzzle can be tricky, but it will give you a new appreciation for the game. Make your 9×9 square, then fill in your clues by hand or with the help of an online generator. Once your puzzle is finished, share it with friends or try it out yourself.

  1. Image titled Create a Sudoku Step 1

    1

    Gather your materials. To make a Sudoku puzzle, you’ll need a pencil, a marker, a ruler and a sheet of standard printer paper. You’ll use the pencil for the first few steps so that you can erase any mistakes, while the ruler will help keep your grid even.[1]

  2. 2

    Draw a large square. Using your pencil and ruler, draw a large square. The square should be about 5”x5”, but you can make it larger or smaller if you like. Also, if you have a Sudoku book handy, consider tracing an existing puzzle to get a standard shape and size.[2]

    Advertisement

  3. 3

    Divide the square into a 3×3 grid. Again using your pencil, divide the large outer square into 9 smaller squares. There should be three squares on the top row, three in the middle row and three in the bottom row: three equally spaced lines going across the square, and three equally spaced lines going down the square. Make sure you use a ruler to ensure that your lines are straight.[3]

  4. 4

    Divide the small squares into 3×3 grids. Once you’ve divided the square into 9 smaller squares, you’ll need to divide those squares into even smaller grids. Using your pencil and ruler, draw three equally spaced lines across each square, then three equally spaced lines down each square. Look at an existing Sudoku puzzle if you need a reference.

  5. 5

    Trace the pencil lines with marker. It’s easy to rub away pencil, and you don’t want your board to fade away. Trace the lines you drew with a marker or pen, making sure that the lines of the first 3×3 square are thicker and bolder. The lines of the smaller squares should be light and thin, so consider using a ballpoint pen.

  6. Image titled Create a Sudoku Step 6

    6

    Copy or scan your blank puzzle. You may want to make more than one Sudoku puzzle, and you can save the hassle of having to redraw the board. Simply scan or photocopy the board and create some duplicates. Use a scanner at home or make a trip to a copy shop or library to use a photocopier.

  7. Image titled Create a Sudoku Step 7

    7

    Print out a template. If you don’t want to draw your puzzle-grid by hand, find a template online. Many websites provide grids of different sizes, and you can even find one on this page. Print as many copies of your templates as you think you’ll need.[4]

  8. Advertisement

  1. 1

    Start filling in a solution. Using a pencil, start creating a solution for your puzzle. Work with each number in order so that you can be sure your solution is valid. Don’t forget how the game works, or you’ll end up with an incorrect solution.[5]

    • Remember the rules. To win sudoku, the player must fill the grid so that each row contains the number 1-9, each column contains the numbers 1-9 and each 3×3 box contains the numbers 1-9.[6]
    • Start filling in the number 1. Place a number one in each 3×3 box, each row and each column. Make sure that that you don’t place two number ones in any column, row or 3×3 box.
    • Move on to the number 2. Begin to place the number 2 in each column, row and 3×3 square. As with the number one, make sure you don’t double up your number 2s.
    • Continue with each number consecutively. Keep adding the number 3, the number 4 and so on to each row, column and 3×3 box. As you fill in more numbers, the boxes will become easier to fill because you’ll have fewer and fewer spaces left.
  2. Image titled Create a Sudoku Step 9

    2

    Backtrack if you get stuck. Creating your solution might become frustrating. You can easily back yourself into a corner, where you’ll find that you can only fill a row or column with a duplicate number. If you end up stuck, erase a few of the problem digits and start the section over again.

  3. 3

    Double-check your solution. Make sure that your solution is correct by checking for duplicate numbers. It may take a while to go through each 3×3 block, row and column, but make sure that they each contain the numbers 1-9 with no duplicate digits. If you don’t want to do this by hand, use an online Sudoku solver. Once you’re sure it’s right, you’re ready to put on the finishing touches.[7]

  4. Image titled Create a Sudoku Step 11

    4

    Use an online generator. If making a Sudoku puzzle by hand gets too frustrating, check out an online generator. You’ll still have the ability to customize the difficulty and the number of clues, but you won’t have to do as much work. There are many different websites that can help you generate and check your puzzles.[8]

  5. Advertisement

  1. 1

    Begin removing digits. With an eraser, begin by erasing one number from each column, row and 3×3 square. The more you erase, the harder the puzzle will be to solve, so think about how difficult you want the puzzle to be. Erase lightly so that if you change your mind, you’ll be able to recover your clues. Also, consider making a copy of your solution to reference.[9]

  2. 2

    Check to make sure your puzzle can be solved. With each digit that you erase, work through the puzzle to make sure it can still be finished. Make sure that your player will still be able to use the clues available to fill in the blanks, and that there aren’t spaces with insufficient clues. If you find that it’s too difficult, replace the clues that you erased and try erasing others.

  3. 3

    Erase blank squares and ink filled ones. Once you’ve finished erasing clues, give each empty square some extra attention with the eraser. If you don’t fully erase the missing squares, your player may be able to see which number was originally there. Then, use your marker to trace the numbers in the filled squares so that they don’t smudge.[10]

    • If you want to, copy your finished puzzle onto a new grid so there’s no chance of a player seeing your original answers.
  4. Image titled Create a Sudoku Step 15

    4

    Copy and share your puzzle. Make some copies of your finished puzzle at home or in a copy shop. Next, share it with your friends and family members. Get some feedback about the difficulty of your puzzle, then practice making a few more.

  5. Advertisement

Sample Sudoku Puzzles

Image titled Create a Sudoku Step 15

Blank Sudoku Page

Add New Question

  • Question

    How can I make money by making my own sudoku puzzles?

    Community Answer

    You could create a site with free sudokus and put ads on the site. You could also use ad.fly to let people download them for free — ads show up while downloading, so you get a little money for each download. Or, simply make a large collection of them and sell as a printable PDF for a certain amount of money.

  • Question

    How do I know if it is correct?

    Community Answer

    You can try it out and see if you can solve it correctly. If not, you will realize where there are errors and be able to correct them.

  • Question

    After I create a full page Sudoku, how do I know how many numbers to remove?

    Logan Eichfeld

    Logan Eichfeld

    Community Answer

    This depends on how difficult you want your puzzle to be. If you want your puzzle to be easy, remove a small amount of numbers from the grid. If you want your puzzle to be intermediate, then remove a moderate amount of numbers from the grid. if you want your puzzle to be hard, remove a large amount of numbers from the grid.

See more answers

Ask a Question

200 characters left

Include your email address to get a message when this question is answered.

Submit

Advertisement

Video

  • Once you’re comfortable making standard puzzles, check out Sudoku variations. Some use larger boards, the alphabet, or symbols, and they all help keep the game fresh.

  • Don’t get too frustrated when filling in the solution. Handmaking a sudoku puzzle can be a little tricky at first, because the numbers have to be perfectly placed. However, with more practice, it will become easier and easier.

  • Get help with sudoku checkers. If you ever get stuck while making your puzzle, use an online checker to make sure that your puzzle is solvable and within the rules.

Thanks for submitting a tip for review!

Advertisement

Things You’ll Need

  • A pen
  • A pencil
  • An eraser
  • Paper
  • A ruler

References

About This Article

Article SummaryX

If you enjoy doing Sudoku puzzles, try creating your own. Draw a large square that’s around 5 inches by 5 inches. Divide the larger outer square into 9 smaller ones so there are 3 squares on the top row, 3 in the middle, and 3 on the bottom. You can now divide the small squares into 3 by 3 grids. If you need a reference, look at an actual Sudoku puzzle. Once you have your blank puzzle, start filling in solutions. Start by placing the number 1 in each 3 by 3 box, row, and column. Then move on to number 2 so you can keep track of what you’ve used so far. If making a Sudoku by hand is too tedious, then use an online generator. To learn how to remove numbers so you can have a friend solve your puzzle, keep reading!

Did this summary help you?

Thanks to all authors for creating a page that has been read 223,852 times.

Reader Success Stories

  • Anonymous

    “I have been fascinated with these puzzles since I discovered them. I really wanted to know how they were created;…” more

Did this article help you?

Как составить судоку

Судоку – популярная числовая головоломка родом из Японии. Это один из самых популярных видов досуга современных людей всех возрастов. Правильно составленный классический судоку может иметь только одно решение, а сам алгоритм составления не так сложен, как кажется на первый взгляд.

Как составить судоку

Инструкция

Составление судоку – не менее интересное занятие, чем их решение. Тем более что вариантов классической головоломки может быть очень много. Под классической подразумевается разновидность судоку в виде большого квадрата 9х9 цифр, разделенного на маленькие квадраты 3х3.

Запишите девять строк по девять цифр так, чтобы в каждой строке и в каждом столбце каждая цифра встречалась только один раз. Самый простой вариант – это запись цифр от 1 до 9 со сдвигом на три позиции по мере продвижения вниз внутри «большой» строки и на одну позицию относительно первой строки при переходе на следующую большую строку:123 456 789456 789 123789 123 456234 567 891567 891 234891 234 567345 678 912678 912 345912 345 678

Модифицируйте эту начальную комбинацию приведенными ниже способами, совмещая со своей фантазией, и вы каждый раз будете получать новую головоломку. Для начала переставляйте цифры в виде «больших» столбцов и строк, т.е. элементов этой таблицы толщиной в 3 цифры. Таким образом, судоку состоит из трех больших строк и столбцов.

Для того чтобы получился новый судоку, достаточно переставить местами две большие строки и два столбца. Например, поменяйте местами первую и третью большие строки:345 678 912678 912 345912 345 678234 567 891567 891 234891 234 567123 456 789456 789 123789 123 456

Переставьте первый и второй большие столбцы:678 345 912912 678 345345 912 678567 234 891891 567 234234 891 567456 123 789789 456 123123 789 456

Усложните получившийся судоку способом перестановки обычных строк или столбцов. Это можно делать только внутри больших колонок таблицы, поскольку иначе нарушится правило судоку: в каждом из 9 квадратов головоломки каждая цифра встречается только 1 раз.

Запишите в первой большой строке вторую обычную на месте третьей и наоборот, во второй строке поменяйте первую обычную с третьей, а в третьей большой строке – первую со второй:678 345 912345 912 678912 678 345234 891 567891 567 234567 234 891789 456 123456 123 789123 789 456

Первоначальный вариант уже не узнать. Теперь поменяйте тем же образом обычные столбцы внутри больших. Например, в первой большой колонке замените первый столбец на второй, во второй – первый на третий, и в третьей колонке – второй столбец на третий:768 543 912435 219 678192 876 345324 198 567981 765 234657 432 891879 654 123546 321 789213 987 456

Можете делать любые манипуляции, главное – соблюдать правило: переставлять как большие, так и обычные элементы таблицы можно только полностью. Удобнее всего составлять судоку в компьютерной программе, например, в Miscrosoft Excel. Там можно проверить себя после всех перемещений и замен, просчитав сумму каждой строки, столбца или маленького квадрата. Она должна составлять 45. Для этой цели в программе предусмотрены макросы и формулы.

Теперь самое интересное: удаление лишних цифр. В зависимости от того, какой сложности вы хотите добиться, уберите из получившейся таблицы от 30 до 70% цифр.

Видео по теме

Войти на сайт

или

Забыли пароль?
Еще не зарегистрированы?

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Создание и оценка количества судоку +7

Алгоритмы, Математика, Разработка игр


Рекомендация: подборка платных и бесплатных курсов Unity – https://katalog-kursov.ru/

Со школьного возраста мне нравились судоку. Помогало коротать время в пути в школу (да и сейчас играю по дороги на работу). В скором времени я и бабушку смог подсадить на судоку, но проблема была в том, что она не могла играть на электронном устройстве. Потому пришла идея в голову сделать свой судоку, который можно будет распечатывать.

О том, как сделать свой генератор судоку и сколько оценочно различных вариантов может быть и пойдет речь под катом.

Реализовывать буду все на Pascal, так как он был ближе всех к мышке на момент написания статьи. Однако все можно реализовать и на других языках.

?Способ первый. Алфавитная замена.

Первый способ, который мы рассмотрим, будет замена одних цифр на другие в исходном примера судоку. За исходный вариант возьмем следующую таблицу.

Картинка таблицы

Суть способа состоит в том, чтобы каждой цифре сопоставить другую цифры и тем самым изменить всю судоку целиком.

Для этого воспользуемся одномерной матрицей с индексами от 1 до 9 и заполним в самом начале все ячейки в соответствии с их индексами. А дальше будем брать две случайные ячейки и менять их значения между собой. Заметим, что проделав данную операцию нечетное количество раз у нас не получится исходный вариант заполнения матрицы (доказательство предоставляется читателю). Для сомневающихся в конце программы проводится генерация одного миллиона матриц судоку и оценка их совпадений с исходным.

Пояснительная картинка

Код программы на Pascal

type rec=record//алфавит замены
num:array [1..9] of integer;
constructor Create();
var i:integer;
begin
for i:=1 to 9 do
num[i]:=i;
end;
procedure rand();//случайный обмен двух чисел в алфавите
var i,j,k:integer;
begin
i:=random(1,9);
j:=i;
while(i=j) do j:=random(1,9);
k:=num[i];
num[i]:=num[j];
num[j]:=k;
end;
procedure wr();//вывод алфавита на экран
var i:integer;
begin
for i:=1 to 9 do
write(num[i]+’ ‘);
writeln;
end;
end;

Подсчитав, получим 9! вариантов, а это 362 880 различных комбинаций.

?Способ второй. Матричные перестановки.

Это способ, который был ещё на Хабре пару лет назад. Почитать подробности можно тут.

А тут приведу краткую выжимку:

Можно поменять строки/столбцы в тройках, как показано на рисунках

Стоит также отметить, что нечетное количество перестановок гарантирует отличие от первоначального варианта.

Потому реализуем сначала обмен строк и обмен столбцов в матрице судоку. Так же для упрощения кода вставим туда функцию замены цифр по алфавиту (способ, описанный ранее)

Код программы на Pascal

type sudoku=record//таблица судоку
num:array [1..9] of array [1..9] of integer;
constructor Create();//ряд от 1 до 9 сдвинутый циклично так, чтобы таблица соответствовала правилам судоку
begin
num[1][1]:=1; num[1][2]:=2; num[1][3]:=3; num[1][4]:=4; num[1][5]:=5; num[1][6]:=6; num[1][7]:=7; num[1][8]:=8; num[1][9]:=9;
num[2][1]:=4; num[2][2]:=5; num[2][3]:=6; num[2][4]:=7; num[2][5]:=8; num[2][6]:=9; num[2][7]:=1; num[2][8]:=2; num[2][9]:=3;
num[3][1]:=7; num[3][2]:=8; num[3][3]:=9; num[3][4]:=1; num[3][5]:=2; num[3][6]:=3; num[3][7]:=4; num[3][8]:=5; num[3][9]:=6;
num[4][1]:=2; num[4][2]:=3; num[4][3]:=4; num[4][4]:=5; num[4][5]:=6; num[4][6]:=7; num[4][7]:=8; num[4][8]:=9; num[4][9]:=1;
num[5][1]:=5; num[5][2]:=6; num[5][3]:=7; num[5][4]:=8; num[5][5]:=9; num[5][6]:=1; num[5][7]:=2; num[5][8]:=3; num[5][9]:=4;
num[6][1]:=8; num[6][2]:=9; num[6][3]:=1; num[6][4]:=2; num[6][5]:=3; num[6][6]:=4; num[6][7]:=5; num[6][8]:=6; num[6][9]:=7;
num[7][1]:=3; num[7][2]:=4; num[7][3]:=5; num[7][4]:=6; num[7][5]:=7; num[7][6]:=8; num[7][7]:=9; num[7][8]:=1; num[7][9]:=2;
num[8][1]:=6; num[8][2]:=7; num[8][3]:=8; num[8][4]:=9; num[8][5]:=1; num[8][6]:=2; num[8][7]:=3; num[8][8]:=4; num[8][9]:=5;
num[9][1]:=9; num[9][2]:=1; num[9][3]:=2; num[9][4]:=3; num[9][5]:=4; num[9][6]:=5; num[9][7]:=6; num[9][8]:=7; num[9][9]:=8;
end;
procedure change(alf:rec);//алфавитная замена
var i,j:integer;
begin
for i:=1 to 9 do
for j:=1 to 9 do
num[i][j]:=alf.num[(num[i][j])];
end;
procedure swip_row();//обмен рядами
var i,j,k,r:integer;
begin
i:=random(1,9);
j:=i;
while(j=i) do j:=random(3*((i-1+3)div 3-1)+1,3*((i-1+3)div 3-1)+3);
for r:=1 to 9 do
begin
k:=num[i][r];
num[i][r]:=num[j][r];
num[j][r]:=k;
end;
end;
procedure swip_line();//обмен столбцами
var i,j,k,r:integer;
begin
i:=random(1,9);
j:=i;
while(j=i) do j:=random(3*((i-1+3)div 3-1)+1,3*((i-1+3)div 3-1)+3);
for r:=1 to 9 do
begin
k:=num[r][i];
num[r][i]:=num[r][j];
num[r][j]:=k;
end;
end;
procedure wr();//вывод на экран
var i,j:integer;
begin
for i:=1 to 9 do
begin
for j:=1 to 9 do
write(num[i][j],’ ‘);
writeln;
end;
writeln;
end;
end;

Подсчитав, получим что при замене только в одной тройке столбцов/рядов, можно увеличить количество вариантов в 6 раз на каждую тройку (6*6*6 за столбцы и столько же за строки, итого 46 656 вариантов).

А так же напишем отдельно функцию, которая будет посимвольно сравнивать две судоку между собой и возвращать true/false если они совпадают/не совпадают.

Код программы на Pascal

function compl(s1,s2:sudoku):boolean;//сравнение двух таблиц судоку
var i,j:integer; flag:boolean;
begin
flag:=true;
for i:=1 to 9 do
for j:=1 to 9 do
if(s1.num[i][j]<>s2.num[i][j])then flag:=false;
compl:=flag;
end;

var
a:rec;
nw,was:sudoku;
i:integer;
t,n:integer;
cor:integer;
begin
//Расчет вероятности совпадения судоку после замены алфавита и исходного варианта
cor:=0;
for t:=1 to 1000000 do
begin
nw:=new sudoku();
was:=new sudoku();
a:=new rec();

//Общее замечание. При нечетном количестве перестановок, исходная ситуация невозможна
//за 6 перестановок можно перемешать все тройки столбцов/строк
for i:=1 to 7 do nw.swip_row();//6*3 вариантов
for i:=1 to 7 do nw.swip_line();//6*3 вариантов
//за 8 парных перестановок можно получить любую комбинацию из 9 цифр.
for i:=1 to 9 do a.rand();//9! вариантов
//Оценочное количество вариантов 117 573 120

nw.change(a);
if(compl(nw,was)) then cor:=cor+1;
end;
writeln((cor/1000000)*100,’%’);
nw.wr();
end.

?В заключении расчетов

Стоит пояснить, почему полученные два числа можно перемножить. При замене строк мы не получим тот же вариант, что и при замене цифр, так как иначе получим, другой алфавит замен (рассмотрев последнюю замену строк, можно найти противоречие).

Потому данный алгоритм позволяет создавать до 362 880 * 46 656 или 16 930 529 280 вариантов.

В статье описаны не все преобразования с таблицей судоку (замена троек столбцов/строк, транспонирование и прочее), что доказывает, что количество вариантов судоку ещё больше.

Добавить комментарий