|
ad8c0dc9c4
|
Clear pvals when setting cell
This removes the need to check if a cell is determined in solve()
|
2022-11-26 14:29:44 +00:00 |
|
|
40c12c3458
|
Use LUT for group indexes instead of calculating on-the-fly
|
2022-11-26 14:27:34 +00:00 |
|
|
d9c416ffe0
|
Restructure solver to go cell-by-cell
|
2022-11-26 02:13:33 +00:00 |
|
|
38ce9d0abb
|
Add step to solve() to check if cells have only one possible value
|
2022-11-26 01:12:50 +00:00 |
|
|
f51e9a06b0
|
Use uint16_t instead of struct for cell state
- Bits 0-8 are the possible values
- Bits 9-12 is the concrete value
- Bit 15 is 1 if the cell is determined
|
2022-11-24 00:38:25 +00:00 |
|
|
0ca01985cd
|
Add steps to test columns and segments back
Turns out these are needed for some of them... I guess the way I was
generating them was somehow avoiding tricky ones being created?
|
2022-11-23 21:42:23 +00:00 |
|
|
27d7f3f01b
|
Remove all the indirection
|
2022-11-23 16:26:55 +00:00 |
|
|
5aea129dc9
|
Only apply rules to rows
It goes faster this way.
|
2022-11-23 15:50:20 +00:00 |
|
|
119270c89b
|
Apply rules to segments as well as rows and columns
|
2022-11-23 15:46:47 +00:00 |
|
|
d74b5410b6
|
Add number of passes to benchmark output
|
2022-11-23 15:46:21 +00:00 |
|
|
4feaedf1a3
|
Create basic, rule-based solver
|
2022-11-21 19:24:34 +00:00 |
|