10 Commits

Author SHA1 Message Date
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