Weekly Challenge #200
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
https://en.wikipedia.org/wiki/Sudoku
Sudoku is a popular puzzle that requires you to the cells in a 9×9 grid with digits so that each row, each column, and each of the nine 3×3 boxes (shown with heavier lines) contains all the digits from 1 to 9 exactly once. Each puzzle is encoded as an 81 character string.
This challenge has three solution levels:
BEGINNER:
Using the Beginner and Intermediate Start File, parse the puzzle by separating rows nine characters at a time. The columns and boxes then line up accordingly where a ‘0’ represents an empty cell.
INTERMEDIATE:
Solve the puzzle provided in the Beginner and Intermediate Start File.
ADVANCED:
Solve the Sudoku puzzle from the Wikipedia article (Wikipedia Puzzle Start File).
quizzes
ParseSimple
quizzes_Matched
Split to rows on 9 digits
quizzes
ParseSimple
Warn
quizzes_Matched
Split to 9 cols on single digit
C:\Users\peter\AppData\Local\Temp\Engine_22352_7608b681fd65409b826f870863766121_\Engine_7448_0a264ae8006747b19c43b4dd017109eb_.yxdb
Single
Profile
RowID
1
Int32
6
0
RowID
Remove old field
Warn
Transpose
Rename
Assign BoxIDs based on row/col groupings
BoxID
1
Int32
6
0
BoxID
Join BoxIDs
Simple
!=
Value
True
fixed
2023-02-11 01:54:31
0
0
2023-02-11 01:54:31
2023-02-11 01:54:31
Separate Zeros
[Value] != 0
C:\Users\peter\AppData\Local\Temp\Engine_22352_7608b681fd65409b826f870863766121_\Engine_7448_0fab46603d4048a9b8ad8e8a02545655_.yxdb
Single
Profile
RowCount
Int32
4
1
RowCount <= 9
RowCount + 1
Generate no's 1-9
Error
Append possible values to positions needing a value
Take only positions and values where value is NOT already in that ROW
C:\Users\peter\AppData\Local\Temp\Engine_22352_7608b681fd65409b826f870863766121_\Engine_7448_3420883666a24d06b7dfb04687dc1dc9_.yxdb
Single
Profile
Take only positions and values where value is NOT already in that COL
C:\Users\peter\AppData\Local\Temp\Engine_22352_7608b681fd65409b826f870863766121_\Engine_7448_f646fa24cce347a0aec89cd21272a4fe_.yxdb
Single
Profile
Take only positions and values where value is NOT already in that BOX
C:\Users\peter\AppData\Local\Temp\Engine_22352_7608b681fd65409b826f870863766121_\Engine_7448_06c8427423f34afebdae98e8581ada7b_.yxdb
Single
Profile
This leaves the possible values for the given positions.
As there is only one possible value for each, this is our solution.
Union solved positions to known positions.
Warning
All
ByName
C:\Users\peter\AppData\Local\Temp\Engine_22352_7608b681fd65409b826f870863766121_\Engine_7448_7000b35b883441c8885e4bf3518a57ce_.yxdb
Single
Profile
Crosstab to grid
Ascending
Field sort asc
Concat to check soln
quizzes
ParseSimple
quizzes_Matched
Split to rows on 9 digits
quizzes
ParseSimple
Warn
quizzes_Matched
Split to 9 cols on single digit
C:\Users\peter\AppData\Local\Temp\Engine_22352_7608b681fd65409b826f870863766121_\Engine_7448_c0e71c5503cf4557ac97f9a1398a92e1_.yxdb
Single
Profile
RowID
1
Int32
6
0
RowID
Remove old field
Warn
Transpose
Rename
Assign BoxIDs based on row/col groupings
BoxID
1
Int32
6
0
BoxID
Join BoxIDs
C:\Users\peter\AppData\Local\Temp\Engine_22352_7608b681fd65409b826f870863766121_\Engine_7448_6fe6aba4e45c4062aa4d6bb6e9ca2472_.yxdb
Single
Profile
C:\Users\peter\AppData\Local\Temp\Engine_22352_7608b681fd65409b826f870863766121_\Engine_7448_80e95b6b13f0468e8a8b53d49c9e55fc_.yxdb
Single
Profile
,
Ascending
C:\Users\peter\AppData\Local\Temp\Engine_22352_7608b681fd65409b826f870863766121_\Engine_7448_dcf2d2d53b0b41ba8c0b5b85ed506422_.yxdb
challenge_200_pgb (159)
Iterative macro to keep solving until all positions are known
Intermediate Solution
647238519915476238328519467791652843563784921482391756839125674276843195154967382
Intermediate
Solution
C:\Users\peter\AppData\Local\Temp\Engine_22352_7608b681fd65409b826f870863766121_\Engine_7448_820fc90de80d48ab9c69a624ca2e9d36_.yxdb
Single
Profile
Beginner Solution
0
0
0
2
3
8
5
1
9
0
0
0
4
7
6
2
3
8
0
0
0
5
1
9
4
6
7
7
9
1
6
5
2
8
4
3
5
6
3
7
8
4
9
2
1
4
8
2
3
9
1
7
5
6
8
3
9
1
2
5
6
7
4
2
7
6
8
4
3
1
9
5
1
5
4
9
6
7
3
8
2
Beginner
Solution
C:\Users\peter\AppData\Local\Temp\Engine_22352_7608b681fd65409b826f870863766121_\Engine_7448_4f6b9726ad694dd08ce87c87261cf93b_.yxdb
Single
Profile
Wikipedia Puzzle (Advanced Start File and Solution)
530070000600195000098000060800060003400803001700020006060000280000419005000080079
Wikipedia
Puzzle
Start File
534678912672195348198342567859761423426853791713924856961537284287419635345286179
Wikipedia
Puzzle
Solution
C:\Users\peter\AppData\Local\Temp\Engine_22352_7608b681fd65409b826f870863766121_\Engine_7448_5d399097de41459fa5e46600fc6f6c3f_.yxdb
C:\Users\peter\AppData\Local\Temp\Engine_22352_7608b681fd65409b826f870863766121_\Engine_7448_76811979b5d245ce80d0b240b52df642_.yxdb
Single
Profile
Beginner and Intermediate Start File
000238519000476238000519467791652843563784921482391756839125674276843195154967382
Beginner and
Intermediate
Start File
C:\Users\peter\AppData\Local\Temp\Engine_22352_7608b681fd65409b826f870863766121_\Engine_7448_be6531afa35746229112526af74799ba_.yxdb
Single
Profile
Horizontal
challenge_200_pgb