СУДОКУ НА PHP

Судоку - проверенное временем развлечение, которое можно реализовать на PHP. Суть игры заключается в заполнении таблицы 9x9 различными цифрами от 1 до 9 таким образом, чтобы в каждой строке, столбце и малом квадрате 3x3 не было повторяющихся цифр.

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

$sudoku = array ( array(5,3,0,0,7,0,0,0,0), array(6,0,0,1,9,5,0,0,0), array(0,9,8,0,0,0,0,6,0), array(8,0,0,0,6,0,0,0,3), array(4,0,0,8,0,3,0,0,1), array(7,0,0,0,2,0,0,0,6), array(0,6,0,0,0,0,2,8,0), array(0,0,0,4,1,9,0,0,5), array(0,0,0,0,8,0,0,7,9));function checkSudoku($sudoku, $row, $col, $num) { for ($i = 0; $i < 9; ++$i) { if ($sudoku[$row][$i] == $num) return false; if ($sudoku[$i][$col] == $num) return false; $boxRow = floor($row / 3) * 3 + floor($i / 3); $boxCol = floor($col / 3) * 3 + ($i % 3); if ($sudoku[$boxRow][$boxCol] == $num) return false; } return true;}function solveSudoku(&$sudoku) { for ($row = 0; $row < 9; ++$row) { for ($col = 0; $col < 9; ++$col) { if ($sudoku[$row][$col] == 0) { for ($num = 1; $num <= 9; ++$num) { if (checkSudoku($sudoku, $row, $col, $num)) { $sudoku[$row][$col] = $num; if (solveSudoku($sudoku)) return true; $sudoku[$row][$col] = 0; } } return false; } } } return true;}solveSudoku($sudoku);

Приведенный код решает сгенерированную таблицу судоку. Он использует рекурсивный алгоритм backtracking, с помощью которого можно решить любую допустимую таблицу судоку. Благодаря использованию рекурсии, код может быть устранен в отдельную функцию, которая будет вызываться в случае необходимости.

Судоку на JavaScript разработка игры

Hướng dẫn Cách chơi Sudoku nhanh nhất cho người mới chơi (cách giải ô số SUDOKU đơn giản)

«Удивительные люди». Александр Ершов. Скоростное решение судоку

Орел и решка на PHP. Практика ООП для начинающих

Sudoku game: Solve with PHP (★☆☆)

Techniques for Hard Sudoku

Реклама
Новое
Реклама