@ 2013-08-09T17:52:17Z <?php
class SudokuSolver
{
const NUMBERS = "123456789"
protected $sudokuColumns;
public function __construct ($sudoku)
{
$this->sudokuColumns = $sudoku;
}
// could be static as well
public function printOut ($sudoku)
{
foreach ($sudoku as $column) {
foreach ($column as $cell) {
echo "|";
if (null !== $cell) {
echo $cell;
} else {
echo " ";
}
}
echo "|\n";
}
}
public function solve()
{
$this->checkConsistenz();
}
protected function checkConsistenz ()
{
$columns = $this->sudokuColumns;
// check rows -> own method
$rows = array();
foreach ($columns as $columnIndex => $column) {
foreach ($column as $rowIndex => $cell) {
$rows[$rowIndex][$columnIndex] = $cell;
}
//$this->printOut($rows);
}
foreach ($rows as $rowIndex => $row) {
$this->checkRow($rowIndex);
}
}
protected function checkRow ($rowIndex, $row)
{
$numbers = self::NUMBERS;
echo "checking $rowIndex..\n";
foreach ($row as $column) {
if (false === strpos($column,$numbers))
{
return false;
}
$numbers = str_replace($col,'',$numbers);
}
return true;
}
}
$sudoku = array();
$sudoku[] = array(null,3,null, null,null,null, null,null,null);
$sudoku[] = array(null,null,null, 1,9,5, null,null,null);
$sudoku[] = array(null,null,8, null,null,null, null,6,null);
$sudoku[] = array(8,null,null, null,6,null, null,null,null);
$sudoku[] = array(4,null,null, 8,null,null, null,null,1);
$sudoku[] = array(null,null,null ,null,2,null, null,null,null);
$sudoku[] = array(null,6,null, null,null,null, 2,8,null);
$sudoku[] = array(null,null,null, 4,1,9, null,null,5);
$sudoku[] = array(null,null,null, null,null,null, null,7,null);
$sudokuSolver = new SudokuSolver($sudoku);
$sudokuSolver->printOut($sudoku);
$sudokuSolver->solve($sudoku);
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).
Version System time (s) User time (s) Memory (MiB) 5.4.17 0.008 0.038 12.40 5.4.16 0.006 0.041 12.39 5.4.15 0.006 0.038 12.39 5.4.14 0.006 0.042 12.08 5.4.13 0.008 0.038 12.06 5.4.12 0.006 0.040 12.03 5.4.11 0.009 0.037 12.02 5.4.10 0.008 0.041 12.02 5.4.9 0.008 0.046 12.02 5.4.8 0.008 0.045 12.02 5.4.7 0.008 0.043 12.02 5.4.6 0.008 0.043 12.02 5.4.5 0.008 0.041 12.02 5.4.4 0.008 0.039 12.00 5.4.3 0.006 0.040 12.00 5.4.2 0.005 0.038 12.00 5.4.1 0.009 0.038 12.00 5.4.0 0.006 0.041 11.49 5.3.27 0.006 0.048 12.73 5.3.26 0.007 0.048 12.72 5.3.25 0.009 0.044 12.72 5.3.24 0.007 0.043 12.72 5.3.23 0.007 0.048 12.71 5.3.22 0.013 0.052 12.68 5.3.21 0.008 0.048 12.68 5.3.20 0.010 0.054 12.68 5.3.19 0.008 0.042 12.68 5.3.18 0.006 0.044 12.67 5.3.17 0.008 0.044 12.67 5.3.16 0.008 0.042 12.67 5.3.15 0.007 0.047 12.67 5.3.14 0.009 0.043 12.66 5.3.13 0.008 0.043 12.66 5.3.12 0.007 0.043 12.66 5.3.11 0.008 0.047 12.66 5.3.10 0.009 0.044 12.12 5.3.9 0.008 0.049 12.10 5.3.8 0.008 0.051 12.09 5.3.7 0.009 0.044 12.09 5.3.6 0.008 0.040 12.08 5.3.5 0.007 0.040 12.02 5.3.4 0.007 0.040 12.02 5.3.3 0.009 0.039 11.98 5.3.2 0.009 0.039 11.76 5.3.1 0.006 0.040 11.73 5.3.0 0.008 0.046 11.71
preferences:dark mode live preview
134.66 ms | 1394 KiB | 7 Q