[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-apl] Dudoku Solver/Generator V0.1 to test, using Quad-DLX
From: |
Christian Robert |
Subject: |
[Bug-apl] Dudoku Solver/Generator V0.1 to test, using Quad-DLX |
Date: |
Fri, 2 Dec 2016 21:45:49 -0500 |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 |
Here it is for anyone to test. (XSudoku.xml attached to this email)
Test it for me please and report any bug directly to me (unless it's bug-apl
general purpose issue).
if a variable name "DEBUG" exist then the "Gengrid" function will show progress.
if you )erase DEBUG, no progress is showed
3 main functions exist:
1) z←Display s // Display a 9x9 sudoku where
zeroes mean blank cell
2) z←Solve s // Solve a 9x9 sudoku where
zeroes mean blank cell
3) z←[maxtime] Gengrid min_non_empty_cells // Generate a sudoku within time
limit maxtime (in seconds) or min_non_empty_cells
)vars
DEBUG SamplesEasy SamplesHard SamplesMedium StarBurst
S←{(Display ⍵) (Display Solve ⍵)}
S ¨ SamplesEasy
╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗ ╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗
║ 5 │ │ 2 ║ 6 │ 1 │ 3 ║ 9 │ │ 8 ║ ║ 5 │ 4 │ 2 ║ 6 │ 1 │ 3 ║ 9 │ 7 │ 8 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ │ 3 │ 6 ║ 7 │ │ ║ │ │ ║ ║ 1 │ 3 │ 6 ║ 7 │ 8 │ 9 ║ 2 │ 4 │ 5 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ │ 8 │ 9 ║ 2 │ │ ║ │ │ ║ ║ 7 │ 8 │ 9 ║ 2 │ 4 │ 5 ║ 1 │ 3 │ 6 ║
╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣
║ │ │ ║ 8 │ 9 │ 4 ║ │ 6 │ ║ ║ 2 │ 1 │ 5 ║ 8 │ 9 │ 4 ║ 7 │ 6 │ 3 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ │ │ 7 ║ 3 │ │ ║ 5 │ │ 4 ║ ║ 8 │ 9 │ 7 ║ 3 │ 2 │ 6 ║ 5 │ 1 │ 4 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ │ │ ║ │ │ 7 ║ 8 │ │ 9 ║ ║ 3 │ 6 │ 4 ║ 1 │ 5 │ 7 ║ 8 │ 2 │ 9 ║
╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣
║ │ │ 3 ║ 5 │ │ ║ │ 9 │ 1 ║ ║ 6 │ 2 │ 3 ║ 5 │ 7 │ 8 ║ 4 │ 9 │ 1 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 4 │ │ 1 ║ 9 │ 3 │ 2 ║ │ │ 7 ║ ║ 4 │ 5 │ 1 ║ 9 │ 3 │ 2 ║ 6 │ 8 │ 7 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 9 │ │ 8 ║ │ │ 1 ║ │ │ 2 ║ ║ 9 │ 7 │ 8 ║ 4 │ 6 │ 1 ║ 3 │ 5 │ 2 ║
╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝ ╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝
╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗ ╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗
║ 3 │ 5 │ ║ │ 2 │ 8 ║ │ │ 4 ║ ║ 3 │ 5 │ 7 ║ 9 │ 2 │ 8 ║ 1 │ 6 │ 4 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ │ │ 4 ║ 5 │ │ 7 ║ │ │ ║ ║ 1 │ 2 │ 4 ║ 5 │ 6 │ 7 ║ 3 │ 8 │ 9 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 6 │ 8 │ 9 ║ 1 │ │ 3 ║ │ 5 │ ║ ║ 6 │ 8 │ 9 ║ 1 │ 4 │ 3 ║ 2 │ 5 │ 7 ║
╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣
║ 2 │ 6 │ ║ │ │ ║ 9 │ 3 │ ║ ║ 2 │ 6 │ 1 ║ 7 │ 5 │ 4 ║ 9 │ 3 │ 8 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 7 │ │ ║ │ 3 │ ║ │ │ 5 ║ ║ 7 │ 9 │ 8 ║ 2 │ 3 │ 6 ║ 4 │ 1 │ 5 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 4 │ 3 │ 5 ║ │ │ ║ 7 │ │ 6 ║ ║ 4 │ 3 │ 5 ║ 8 │ 1 │ 9 ║ 7 │ 2 │ 6 ║
╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣
║ │ │ ║ 3 │ │ ║ 6 │ 7 │ ║ ║ 8 │ 4 │ 2 ║ 3 │ 9 │ 5 ║ 6 │ 7 │ 1 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ │ 1 │ 6 ║ │ │ 2 ║ │ │ 3 ║ ║ 5 │ 1 │ 6 ║ 4 │ 7 │ 2 ║ 8 │ 9 │ 3 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ │ │ 3 ║ 6 │ 8 │ 1 ║ 5 │ │ ║ ║ 9 │ 7 │ 3 ║ 6 │ 8 │ 1 ║ 5 │ 4 │ 2 ║
╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝ ╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝
╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗ ╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗
║ │ 1 │ 2 ║ │ │ ║ │ 7 │ ║ ║ 4 │ 1 │ 2 ║ 5 │ 3 │ 9 ║ 6 │ 7 │ 8 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 3 │ 5 │ ║ 1 │ │ ║ │ 4 │ 9 ║ ║ 3 │ 5 │ 6 ║ 1 │ 7 │ 8 ║ 2 │ 4 │ 9 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ │ │ 9 ║ 2 │ │ 6 ║ 3 │ 5 │ ║ ║ 7 │ 8 │ 9 ║ 2 │ 4 │ 6 ║ 3 │ 5 │ 1 ║
╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣
║ │ │ 3 ║ 7 │ 8 │ ║ 9 │ │ ║ ║ 1 │ 4 │ 3 ║ 7 │ 8 │ 2 ║ 9 │ 6 │ 5 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ │ │ 5 ║ │ 1 │ 3 ║ │ │ 4 ║ ║ 6 │ 7 │ 5 ║ 9 │ 1 │ 3 ║ 8 │ 2 │ 4 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 2 │ │ ║ 4 │ 6 │ 5 ║ 1 │ 3 │ ║ ║ 2 │ 9 │ 8 ║ 4 │ 6 │ 5 ║ 1 │ 3 │ 7 ║
╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣
║ 5 │ │ 1 ║ │ │ ║ 7 │ │ ║ ║ 5 │ 3 │ 1 ║ 8 │ 2 │ 4 ║ 7 │ 9 │ 6 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 9 │ │ 7 ║ 3 │ │ ║ │ 8 │ ║ ║ 9 │ 6 │ 7 ║ 3 │ 5 │ 1 ║ 4 │ 8 │ 2 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ │ 2 │ ║ 6 │ 9 │ ║ │ 1 │ ║ ║ 8 │ 2 │ 4 ║ 6 │ 9 │ 7 ║ 5 │ 1 │ 3 ║
╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝ ╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝
╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗ ╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗
║ │ │ 9 ║ │ │ 3 ║ 2 │ 7 │ 5 ║ ║ 4 │ 1 │ 9 ║ 8 │ 6 │ 3 ║ 2 │ 7 │ 5 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 2 │ │ 5 ║ 4 │ 7 │ 9 ║ 1 │ 6 │ 8 ║ ║ 2 │ 3 │ 5 ║ 4 │ 7 │ 9 ║ 1 │ 6 │ 8 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 6 │ 7 │ 8 ║ 2 │ │ 1 ║ │ │ 9 ║ ║ 6 │ 7 │ 8 ║ 2 │ 5 │ 1 ║ 3 │ 4 │ 9 ║
╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣
║ │ │ 2 ║ 7 │ │ ║ │ │ ║ ║ 1 │ 8 │ 2 ║ 7 │ 3 │ 6 ║ 9 │ 5 │ 4 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ │ 9 │ 7 ║ 1 │ │ ║ 6 │ │ ║ ║ 5 │ 9 │ 7 ║ 1 │ 8 │ 4 ║ 6 │ 2 │ 3 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 3 │ 4 │ ║ │ 2 │ ║ 8 │ 1 │ ║ ║ 3 │ 4 │ 6 ║ 9 │ 2 │ 5 ║ 8 │ 1 │ 7 ║
╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣
║ │ │ ║ │ │ ║ 7 │ │ ║ ║ 9 │ 5 │ 1 ║ 3 │ 4 │ 2 ║ 7 │ 8 │ 6 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ │ 6 │ 3 ║ 5 │ │ 8 ║ │ 9 │ ║ ║ 7 │ 6 │ 3 ║ 5 │ 1 │ 8 ║ 4 │ 9 │ 2 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ │ │ ║ │ │ 7 ║ │ 3 │ ║ ║ 8 │ 2 │ 4 ║ 6 │ 9 │ 7 ║ 5 │ 3 │ 1 ║
╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝ ╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝
╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗ ╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗
║ 5 │ │ ║ │ │ 3 ║ │ │ ║ ║ 5 │ 9 │ 1 ║ 7 │ 8 │ 3 ║ 2 │ 6 │ 4 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 2 │ │ ║ │ │ 9 ║ 1 │ 7 │ 8 ║ ║ 2 │ 3 │ 4 ║ 5 │ 6 │ 9 ║ 1 │ 7 │ 8 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ │ │ 8 ║ 2 │ │ 1 ║ │ │ 9 ║ ║ 6 │ 7 │ 8 ║ 2 │ 4 │ 1 ║ 3 │ 5 │ 9 ║
╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣
║ │ │ ║ 8 │ │ ║ │ 4 │ ║ ║ 1 │ 2 │ 9 ║ 8 │ 3 │ 5 ║ 7 │ 4 │ 6 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 8 │ │ 6 ║ 1 │ 7 │ ║ 9 │ 2 │ ║ ║ 8 │ 5 │ 6 ║ 1 │ 7 │ 4 ║ 9 │ 2 │ 3 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 3 │ 4 │ 7 ║ │ 2 │ ║ │ │ 5 ║ ║ 3 │ 4 │ 7 ║ 9 │ 2 │ 6 ║ 8 │ 1 │ 5 ║
╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣
║ 4 │ 1 │ ║ │ 9 │ ║ │ 8 │ ║ ║ 4 │ 1 │ 3 ║ 6 │ 9 │ 2 ║ 5 │ 8 │ 7 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 9 │ │ ║ │ 1 │ ║ │ 3 │ 2 ║ ║ 9 │ 8 │ 5 ║ 4 │ 1 │ 7 ║ 6 │ 3 │ 2 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 7 │ │ 2 ║ 3 │ 5 │ ║ 4 │ │ 1 ║ ║ 7 │ 6 │ 2 ║ 3 │ 5 │ 8 ║ 4 │ 9 │ 1 ║
╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝ ╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝
S StarBurst
╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗ ╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗
║ 9 │ │ ║ 1 │ │ 4 ║ │ │ 2 ║ ║ 9 │ 5 │ 7 ║ 1 │ 8 │ 4 ║ 3 │ 6 │ 2 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ │ 8 │ ║ │ 6 │ ║ │ 7 │ ║ ║ 2 │ 8 │ 1 ║ 9 │ 6 │ 3 ║ 4 │ 7 │ 5 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ │ │ ║ │ │ ║ │ │ ║ ║ 6 │ 4 │ 3 ║ 7 │ 2 │ 5 ║ 1 │ 9 │ 8 ║
╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣
║ 4 │ │ ║ │ │ ║ │ │ 1 ║ ║ 4 │ 9 │ 6 ║ 3 │ 5 │ 7 ║ 8 │ 2 │ 1 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ │ 7 │ ║ │ │ ║ │ 3 │ ║ ║ 8 │ 7 │ 5 ║ 4 │ 1 │ 2 ║ 9 │ 3 │ 6 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 3 │ │ ║ │ │ ║ │ │ 7 ║ ║ 3 │ 1 │ 2 ║ 8 │ 9 │ 6 ║ 5 │ 4 │ 7 ║
╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣
║ │ │ ║ │ │ ║ │ │ ║ ║ 7 │ 2 │ 9 ║ 5 │ 4 │ 8 ║ 6 │ 1 │ 3 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ │ 3 │ ║ │ 7 │ ║ │ 8 │ ║ ║ 5 │ 3 │ 4 ║ 6 │ 7 │ 1 ║ 2 │ 8 │ 9 ║
╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢
║ 1 │ │ ║ 2 │ │ 9 ║ │ │ 4 ║ ║ 1 │ 6 │ 8 ║ 2 │ 3 │ 9 ║ 7 │ 5 │ 4 ║
╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝ ╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝
)fns
Display GenRCD Gengrid OneRCD S Solve df
)vars
DEBUG SamplesEasy SamplesHard SamplesMedium StarBurst
)save
2016-12-02 21:19:49 (GMT-5) XSudoku
)off
See attached workspace ...
Xtian.
XSudoku.xml
Description: Text Data
- [Bug-apl] Dudoku Solver/Generator V0.1 to test, using Quad-DLX,
Christian Robert <=