This week's weekend challenge #3 weekend challenge #3 seemed like a great opportunity to learn Ruby! Unfortunately, my workload and looming vacation did not cooperate. :( The puzzle will make forced moves automatically, but I was hoping to implement rules such as Naked Pairs before resorting to brute force.
This week's weekend challenge #3 seemed like a great opportunity to learn Ruby! Unfortunately, my workload and looming vacation did not cooperate. :( The puzzle will make forced moves automatically, but I was hoping to implement rules such as Naked Pairs before resorting to brute force.
This week's weekend challenge #3 seemed like a great opportunity to learn Ruby! Unfortunately, my workload and looming vacation did not cooperate. :( The puzzle will make forced moves automatically, but I was hoping to implement rules such as Naked Pairs before resorting to brute force.
Update: I'm looking for feedback on Ruby style (e.g. "avoid
and
andor
as they are confusing"), correct use of idioms and the standard library, code organization, etc. This is a Ruby learning exercise, so I want to avoid picking up bad habits early. Since I haven't implemented any brute-force or complex solving yet, performance isn't an issue.
I'm looking for feedback on Ruby style (e.g. "avoid and
and or
as they are confusing"), correct use of idioms and the standard library, code organization, etc. This is a Ruby learning exercise, so I want to avoid picking up bad habits early. Since I haven't implemented any brute-force or complex solving yet, performance isn't an issue.
-> require 'Test'
-> Sudoku::Test::easy
Initial Puzzle
..38.4.5.
84......7
6....29..
.18.5..9.
2.6.7.4.5
.3..4.86.
..51....8
1......79
.6.5.7.2.
start : (1,3) -> 3: 123456789
start : (1,4) -> 8: 12.456789
start : (1,6) -> 4: 12.4567.9
start : (1,8) -> 5: 12..567.9
start : (2,1) -> 8: 12.456789
start : (2,2) -> 4: 12.4567.9
start : (2,9) -> 7: 123..67.9
start : (3,1) -> 6: 12..567.9
start : (3,6) -> 2: 123.5.7.9
start : (3,7) -> 9: 1.34...89
start : (4,2) -> 1: 123.56789
start : (4,3) -> 8: .2.456789
start : (4,5) -> 5: .234567.9
start : (4,8) -> 9: .234.67.9
start : (5,1) -> 2: .2345年7月9日
start : (5,3) -> 6: ...4567.9
start : (5,5) -> 7: 1.34..789
force : (3,4) -> 7: 1.3.5.7..
force : (3,2) -> 5: ....5....
force : (3,3) -> 1: 1........
force : (3,5) -> 3: ..3......
start : (5,7) -> 4: 1.345..8.
force : (5,9) -> 5: 1.3.5..8.
start : (5,9) -> 5: .........
start : (6,2) -> 3: ..3...7.9
force : (5,2) -> 9: ........9
start : (6,5) -> 4: 12.4.6.89
force : (4,1) -> 4: ...4..7..
force : (4,7) -> 7: .23..67..
force : (6,5) -> 4: .........
start : (6,7) -> 8: 12...6.8.
force : (5,6) -> 8: 1.3....8.
force : (6,7) -> 8: .........
start : (6,8) -> 6: 12...6...
start : (7,3) -> 5: .2.45.7.9
force : (6,1) -> 5: ....5.7..
force : (6,3) -> 7: ....5.7..
force : (6,1) -> 5: .........
force : (7,3) -> 5: .........
start : (7,4) -> 1: 1234.6..9
force : (5,8) -> 1: 1.3......
force : (5,4) -> 3: 1.3......
force : (4,9) -> 3: .23......
force : (4,4) -> 2: .2...6...
force : (4,6) -> 6: ..3..6...
force : (4,4) -> 2: .........
force : (6,9) -> 2: 12.......
force : (5,8) -> 1: .........
force : (6,6) -> 1: 1.......9
force : (6,4) -> 9: 1.......9
force : (6,6) -> 1: .........
start : (7,9) -> 8: ...4.6.89
force : (7,8) -> 4: .234..7..
force : (3,9) -> 4: ...4...8.
force : (3,8) -> 8: ...4...8.
force : (3,9) -> 4: .........
force : (7,8) -> 4: .........
force : (7,9) -> 8: .........
start : (8,1) -> 1: 1.3...7.9
force : (8,1) -> 1: .........
start : (8,8) -> 7: .23...7..
force : (8,8) -> 7: .........
start : (8,9) -> 9: .....6..9
force : (8,9) -> 9: .........
start : (9,2) -> 6: .2...678.
force : (9,2) -> 6: .........
force : (8,2) -> 8: .2.....8.
force : (9,5) -> 8: .2...6.89
force : (9,5) -> 8: .........
force : (8,2) -> 8: .........
force : (1,9) -> 6: 1....6...
force : (9,9) -> 1: 1....6...
force : (9,9) -> 1: .........
start : (9,4) -> 5: ...45....
force : (2,6) -> 5: ....5...9
force : (2,4) -> 6: .....6...
force : (2,4) -> 6: .........
force : (8,6) -> 3: ..3......
force : (8,6) -> 3: .........
force : (9,4) -> 5: .........
force : (8,7) -> 5: .2..56...
force : (9,4) -> 5: .........
force : (8,7) -> 5: .........
force : (7,7) -> 6: .23..6...
force : (8,5) -> 6: .2...6...
force : (7,5) -> 2: .2...6..9
force : (8,5) -> 6: .........
force : (1,2) -> 2: .2....7..
force : (1,7) -> 1: 1........
force : (2,5) -> 1: 1.......9
force : (1,7) -> 1: .........
force : (1,7) -> 1: .........
force : (2,3) -> 9: .2......9
force : (1,5) -> 9: 1.......9
force : (2,3) -> 9: .........
force : (1,5) -> 9: .........
force : (2,5) -> 1: .........
force : (2,5) -> 1: .........
force : (1,1) -> 7: ......7..
force : (1,1) -> 7: .........
force : (7,2) -> 7: .2....7..
force : (1,2) -> 2: .........
force : (1,1) -> 7: .........
force : (9,6) -> 7: ......7.9
force : (9,6) -> 7: .........
force : (7,2) -> 7: .........
force : (7,6) -> 9: ........9
force : (7,6) -> 9: .........
force : (9,1) -> 9: ..3...7.9
force : (7,1) -> 3: ..3.....9
force : (1,1) -> 7: .........
force : (2,3) -> 9: .........
force : (9,1) -> 9: .........
force : (9,6) -> 7: .........
force : (1,2) -> 2: .........
force : (7,7) -> 6: .........
force : (7,7) -> 6: .........
force : (8,3) -> 2: .2.4.....
force : (8,3) -> 2: .........
force : (9,3) -> 4: ...4.....
force : (9,3) -> 4: .........
force : (8,4) -> 4: ...45....
force : (8,4) -> 4: .........
force : (9,3) -> 4: .........
force : (9,4) -> 5: .........
start : (9,6) -> 7: .........
start : (9,8) -> 2: .23......
force : (2,7) -> 2: .23......
force : (2,8) -> 3: .23......
force : (9,7) -> 3: .23......
force : (2,7) -> 2: .........
force : (2,8) -> 3: .........
force : (9,7) -> 3: .........
force : (9,8) -> 2: .........
force : (9,8) -> 2: .........
force : (2,7) -> 2: .........
Board State
723894156
849615237
651732984
418256793
296378415
537941862
375129648
182463579
964587321
-> require 'Test' -> Sudoku::Test::easy Initial Puzzle ..38.4.5. 84......7 6....29.. .18.5..9. 2.6.7.4.5 .3..4.86. ..51....8 1......79 .6.5.7.2. start : (1,3) -> 3: 123456789 start : (1,4) -> 8: 12.456789 start : (1,6) -> 4: 12.4567.9 start : (1,8) -> 5: 12..567.9 start : (2,1) -> 8: 12.456789 start : (2,2) -> 4: 12.4567.9 start : (2,9) -> 7: 123..67.9 start : (3,1) -> 6: 12..567.9 start : (3,6) -> 2: 123.5.7.9 start : (3,7) -> 9: 1.34...89 start : (4,2) -> 1: 123.56789 start : (4,3) -> 8: .2.456789 start : (4,5) -> 5: .234567.9 start : (4,8) -> 9: .234.67.9 start : (5,1) -> 2: .2345年7月9日 start : (5,3) -> 6: ...4567.9 start : (5,5) -> 7: 1.34..789 force : (3,4) -> 7: 1.3.5.7.. force : (3,2) -> 5: ....5.... force : (3,3) -> 1: 1........ force : (3,5) -> 3: ..3...... start : (5,7) -> 4: 1.345..8. force : (5,9) -> 5: 1.3.5..8. start : (5,9) -> 5: ......... start : (6,2) -> 3: ..3...7.9 force : (5,2) -> 9: ........9 start : (6,5) -> 4: 12.4.6.89 force : (4,1) -> 4: ...4..7.. force : (4,7) -> 7: .23..67.. force : (6,5) -> 4: ......... start : (6,7) -> 8: 12...6.8. force : (5,6) -> 8: 1.3....8. force : (6,7) -> 8: ......... start : (6,8) -> 6: 12...6... start : (7,3) -> 5: .2.45.7.9 force : (6,1) -> 5: ....5.7.. force : (6,3) -> 7: ....5.7.. force : (6,1) -> 5: ......... force : (7,3) -> 5: ......... start : (7,4) -> 1: 1234.6..9 force : (5,8) -> 1: 1.3...... force : (5,4) -> 3: 1.3...... force : (4,9) -> 3: .23...... force : (4,4) -> 2: .2...6... force : (4,6) -> 6: ..3..6... force : (4,4) -> 2: ......... force : (6,9) -> 2: 12....... force : (5,8) -> 1: ......... force : (6,6) -> 1: 1.......9 force : (6,4) -> 9: 1.......9 force : (6,6) -> 1: ......... start : (7,9) -> 8: ...4.6.89 force : (7,8) -> 4: .234..7.. force : (3,9) -> 4: ...4...8. force : (3,8) -> 8: ...4...8. force : (3,9) -> 4: ......... force : (7,8) -> 4: ......... force : (7,9) -> 8: ......... start : (8,1) -> 1: 1.3...7.9 force : (8,1) -> 1: ......... start : (8,8) -> 7: .23...7.. force : (8,8) -> 7: ......... start : (8,9) -> 9: .....6..9 force : (8,9) -> 9: ......... start : (9,2) -> 6: .2...678. force : (9,2) -> 6: ......... force : (8,2) -> 8: .2.....8. force : (9,5) -> 8: .2...6.89 force : (9,5) -> 8: ......... force : (8,2) -> 8: ......... force : (1,9) -> 6: 1....6... force : (9,9) -> 1: 1....6... force : (9,9) -> 1: ......... start : (9,4) -> 5: ...45.... force : (2,6) -> 5: ....5...9 force : (2,4) -> 6: .....6... force : (2,4) -> 6: ......... force : (8,6) -> 3: ..3...... force : (8,6) -> 3: ......... force : (9,4) -> 5: ......... force : (8,7) -> 5: .2..56... force : (9,4) -> 5: ......... force : (8,7) -> 5: ......... force : (7,7) -> 6: .23..6... force : (8,5) -> 6: .2...6... force : (7,5) -> 2: .2...6..9 force : (8,5) -> 6: ......... force : (1,2) -> 2: .2....7.. force : (1,7) -> 1: 1........ force : (2,5) -> 1: 1.......9 force : (1,7) -> 1: ......... force : (1,7) -> 1: ......... force : (2,3) -> 9: .2......9 force : (1,5) -> 9: 1.......9 force : (2,3) -> 9: ......... force : (1,5) -> 9: ......... force : (2,5) -> 1: ......... force : (2,5) -> 1: ......... force : (1,1) -> 7: ......7.. force : (1,1) -> 7: ......... force : (7,2) -> 7: .2....7.. force : (1,2) -> 2: ......... force : (1,1) -> 7: ......... force : (9,6) -> 7: ......7.9 force : (9,6) -> 7: ......... force : (7,2) -> 7: ......... force : (7,6) -> 9: ........9 force : (7,6) -> 9: ......... force : (9,1) -> 9: ..3...7.9 force : (7,1) -> 3: ..3.....9 force : (1,1) -> 7: ......... force : (2,3) -> 9: ......... force : (9,1) -> 9: ......... force : (9,6) -> 7: ......... force : (1,2) -> 2: ......... force : (7,7) -> 6: ......... force : (7,7) -> 6: ......... force : (8,3) -> 2: .2.4..... force : (8,3) -> 2: ......... force : (9,3) -> 4: ...4..... force : (9,3) -> 4: ......... force : (8,4) -> 4: ...45.... force : (8,4) -> 4: ......... force : (9,3) -> 4: ......... force : (9,4) -> 5: ......... start : (9,6) -> 7: ......... start : (9,8) -> 2: .23...... force : (2,7) -> 2: .23...... force : (2,8) -> 3: .23...... force : (9,7) -> 3: .23...... force : (2,7) -> 2: ......... force : (2,8) -> 3: ......... force : (9,7) -> 3: ......... force : (9,8) -> 2: ......... force : (9,8) -> 2: ......... force : (2,7) -> 2: ......... Board State 723894156 849615237 651732984 418256793 296378415 537941862 375129648 182463579 964587321
Update: I'm looking for feedback on Ruby style (e.g. "avoid
and
andor
as they are confusing"), correct use of idioms and the standard library, code organization, etc. This is a Ruby learning exercise, so I want to avoid picking up bad habits early. Since I haven't implemented any brute-force or complex solving yet, performance isn't an issue.
-> require 'Test'
-> Sudoku::Test::easy
Initial Puzzle
..38.4.5.
84......7
6....29..
.18.5..9.
2.6.7.4.5
.3..4.86.
..51....8
1......79
.6.5.7.2.
start : (1,3) -> 3: 123456789
start : (1,4) -> 8: 12.456789
start : (1,6) -> 4: 12.4567.9
start : (1,8) -> 5: 12..567.9
start : (2,1) -> 8: 12.456789
start : (2,2) -> 4: 12.4567.9
start : (2,9) -> 7: 123..67.9
start : (3,1) -> 6: 12..567.9
start : (3,6) -> 2: 123.5.7.9
start : (3,7) -> 9: 1.34...89
start : (4,2) -> 1: 123.56789
start : (4,3) -> 8: .2.456789
start : (4,5) -> 5: .234567.9
start : (4,8) -> 9: .234.67.9
start : (5,1) -> 2: .2345年7月9日
start : (5,3) -> 6: ...4567.9
start : (5,5) -> 7: 1.34..789
force : (3,4) -> 7: 1.3.5.7..
force : (3,2) -> 5: ....5....
force : (3,3) -> 1: 1........
force : (3,5) -> 3: ..3......
start : (5,7) -> 4: 1.345..8.
force : (5,9) -> 5: 1.3.5..8.
start : (5,9) -> 5: .........
start : (6,2) -> 3: ..3...7.9
force : (5,2) -> 9: ........9
start : (6,5) -> 4: 12.4.6.89
force : (4,1) -> 4: ...4..7..
force : (4,7) -> 7: .23..67..
force : (6,5) -> 4: .........
start : (6,7) -> 8: 12...6.8.
force : (5,6) -> 8: 1.3....8.
force : (6,7) -> 8: .........
start : (6,8) -> 6: 12...6...
start : (7,3) -> 5: .2.45.7.9
force : (6,1) -> 5: ....5.7..
force : (6,3) -> 7: ....5.7..
force : (6,1) -> 5: .........
force : (7,3) -> 5: .........
start : (7,4) -> 1: 1234.6..9
force : (5,8) -> 1: 1.3......
force : (5,4) -> 3: 1.3......
force : (4,9) -> 3: .23......
force : (4,4) -> 2: .2...6...
force : (4,6) -> 6: ..3..6...
force : (4,4) -> 2: .........
force : (6,9) -> 2: 12.......
force : (5,8) -> 1: .........
force : (6,6) -> 1: 1.......9
force : (6,4) -> 9: 1.......9
force : (6,6) -> 1: .........
start : (7,9) -> 8: ...4.6.89
force : (7,8) -> 4: .234..7..
force : (3,9) -> 4: ...4...8.
force : (3,8) -> 8: ...4...8.
force : (3,9) -> 4: .........
force : (7,8) -> 4: .........
force : (7,9) -> 8: .........
start : (8,1) -> 1: 1.3...7.9
force : (8,1) -> 1: .........
start : (8,8) -> 7: .23...7..
force : (8,8) -> 7: .........
start : (8,9) -> 9: .....6..9
force : (8,9) -> 9: .........
start : (9,2) -> 6: .2...678.
force : (9,2) -> 6: .........
force : (8,2) -> 8: .2.....8.
force : (9,5) -> 8: .2...6.89
force : (9,5) -> 8: .........
force : (8,2) -> 8: .........
force : (1,9) -> 6: 1....6...
force : (9,9) -> 1: 1....6...
force : (9,9) -> 1: .........
start : (9,4) -> 5: ...45....
force : (2,6) -> 5: ....5...9
force : (2,4) -> 6: .....6...
force : (2,4) -> 6: .........
force : (8,6) -> 3: ..3......
force : (8,6) -> 3: .........
force : (9,4) -> 5: .........
force : (8,7) -> 5: .2..56...
force : (9,4) -> 5: .........
force : (8,7) -> 5: .........
force : (7,7) -> 6: .23..6...
force : (8,5) -> 6: .2...6...
force : (7,5) -> 2: .2...6..9
force : (8,5) -> 6: .........
force : (1,2) -> 2: .2....7..
force : (1,7) -> 1: 1........
force : (2,5) -> 1: 1.......9
force : (1,7) -> 1: .........
force : (1,7) -> 1: .........
force : (2,3) -> 9: .2......9
force : (1,5) -> 9: 1.......9
force : (2,3) -> 9: .........
force : (1,5) -> 9: .........
force : (2,5) -> 1: .........
force : (2,5) -> 1: .........
force : (1,1) -> 7: ......7..
force : (1,1) -> 7: .........
force : (7,2) -> 7: .2....7..
force : (1,2) -> 2: .........
force : (1,1) -> 7: .........
force : (9,6) -> 7: ......7.9
force : (9,6) -> 7: .........
force : (7,2) -> 7: .........
force : (7,6) -> 9: ........9
force : (7,6) -> 9: .........
force : (9,1) -> 9: ..3...7.9
force : (7,1) -> 3: ..3.....9
force : (1,1) -> 7: .........
force : (2,3) -> 9: .........
force : (9,1) -> 9: .........
force : (9,6) -> 7: .........
force : (1,2) -> 2: .........
force : (7,7) -> 6: .........
force : (7,7) -> 6: .........
force : (8,3) -> 2: .2.4.....
force : (8,3) -> 2: .........
force : (9,3) -> 4: ...4.....
force : (9,3) -> 4: .........
force : (8,4) -> 4: ...45....
force : (8,4) -> 4: .........
force : (9,3) -> 4: .........
force : (9,4) -> 5: .........
start : (9,6) -> 7: .........
start : (9,8) -> 2: .23......
force : (2,7) -> 2: .23......
force : (2,8) -> 3: .23......
force : (9,7) -> 3: .23......
force : (2,7) -> 2: .........
force : (2,8) -> 3: .........
force : (9,7) -> 3: .........
force : (9,8) -> 2: .........
force : (9,8) -> 2: .........
force : (2,7) -> 2: .........
Board State
723894156
849615237
651732984
418256793
296378415
537941862
375129648
182463579
964587321
I'm looking for feedback on Ruby style (e.g. "avoid and
and or
as they are confusing"), correct use of idioms and the standard library, code organization, etc. This is a Ruby learning exercise, so I want to avoid picking up bad habits early. Since I haven't implemented any brute-force or complex solving yet, performance isn't an issue.
-> require 'Test' -> Sudoku::Test::easy Initial Puzzle ..38.4.5. 84......7 6....29.. .18.5..9. 2.6.7.4.5 .3..4.86. ..51....8 1......79 .6.5.7.2. start : (1,3) -> 3: 123456789 start : (1,4) -> 8: 12.456789 start : (1,6) -> 4: 12.4567.9 start : (1,8) -> 5: 12..567.9 start : (2,1) -> 8: 12.456789 start : (2,2) -> 4: 12.4567.9 start : (2,9) -> 7: 123..67.9 start : (3,1) -> 6: 12..567.9 start : (3,6) -> 2: 123.5.7.9 start : (3,7) -> 9: 1.34...89 start : (4,2) -> 1: 123.56789 start : (4,3) -> 8: .2.456789 start : (4,5) -> 5: .234567.9 start : (4,8) -> 9: .234.67.9 start : (5,1) -> 2: .2345年7月9日 start : (5,3) -> 6: ...4567.9 start : (5,5) -> 7: 1.34..789 force : (3,4) -> 7: 1.3.5.7.. force : (3,2) -> 5: ....5.... force : (3,3) -> 1: 1........ force : (3,5) -> 3: ..3...... start : (5,7) -> 4: 1.345..8. force : (5,9) -> 5: 1.3.5..8. start : (5,9) -> 5: ......... start : (6,2) -> 3: ..3...7.9 force : (5,2) -> 9: ........9 start : (6,5) -> 4: 12.4.6.89 force : (4,1) -> 4: ...4..7.. force : (4,7) -> 7: .23..67.. force : (6,5) -> 4: ......... start : (6,7) -> 8: 12...6.8. force : (5,6) -> 8: 1.3....8. force : (6,7) -> 8: ......... start : (6,8) -> 6: 12...6... start : (7,3) -> 5: .2.45.7.9 force : (6,1) -> 5: ....5.7.. force : (6,3) -> 7: ....5.7.. force : (6,1) -> 5: ......... force : (7,3) -> 5: ......... start : (7,4) -> 1: 1234.6..9 force : (5,8) -> 1: 1.3...... force : (5,4) -> 3: 1.3...... force : (4,9) -> 3: .23...... force : (4,4) -> 2: .2...6... force : (4,6) -> 6: ..3..6... force : (4,4) -> 2: ......... force : (6,9) -> 2: 12....... force : (5,8) -> 1: ......... force : (6,6) -> 1: 1.......9 force : (6,4) -> 9: 1.......9 force : (6,6) -> 1: ......... start : (7,9) -> 8: ...4.6.89 force : (7,8) -> 4: .234..7.. force : (3,9) -> 4: ...4...8. force : (3,8) -> 8: ...4...8. force : (3,9) -> 4: ......... force : (7,8) -> 4: ......... force : (7,9) -> 8: ......... start : (8,1) -> 1: 1.3...7.9 force : (8,1) -> 1: ......... start : (8,8) -> 7: .23...7.. force : (8,8) -> 7: ......... start : (8,9) -> 9: .....6..9 force : (8,9) -> 9: ......... start : (9,2) -> 6: .2...678. force : (9,2) -> 6: ......... force : (8,2) -> 8: .2.....8. force : (9,5) -> 8: .2...6.89 force : (9,5) -> 8: ......... force : (8,2) -> 8: ......... force : (1,9) -> 6: 1....6... force : (9,9) -> 1: 1....6... force : (9,9) -> 1: ......... start : (9,4) -> 5: ...45.... force : (2,6) -> 5: ....5...9 force : (2,4) -> 6: .....6... force : (2,4) -> 6: ......... force : (8,6) -> 3: ..3...... force : (8,6) -> 3: ......... force : (9,4) -> 5: ......... force : (8,7) -> 5: .2..56... force : (9,4) -> 5: ......... force : (8,7) -> 5: ......... force : (7,7) -> 6: .23..6... force : (8,5) -> 6: .2...6... force : (7,5) -> 2: .2...6..9 force : (8,5) -> 6: ......... force : (1,2) -> 2: .2....7.. force : (1,7) -> 1: 1........ force : (2,5) -> 1: 1.......9 force : (1,7) -> 1: ......... force : (1,7) -> 1: ......... force : (2,3) -> 9: .2......9 force : (1,5) -> 9: 1.......9 force : (2,3) -> 9: ......... force : (1,5) -> 9: ......... force : (2,5) -> 1: ......... force : (2,5) -> 1: ......... force : (1,1) -> 7: ......7.. force : (1,1) -> 7: ......... force : (7,2) -> 7: .2....7.. force : (1,2) -> 2: ......... force : (1,1) -> 7: ......... force : (9,6) -> 7: ......7.9 force : (9,6) -> 7: ......... force : (7,2) -> 7: ......... force : (7,6) -> 9: ........9 force : (7,6) -> 9: ......... force : (9,1) -> 9: ..3...7.9 force : (7,1) -> 3: ..3.....9 force : (1,1) -> 7: ......... force : (2,3) -> 9: ......... force : (9,1) -> 9: ......... force : (9,6) -> 7: ......... force : (1,2) -> 2: ......... force : (7,7) -> 6: ......... force : (7,7) -> 6: ......... force : (8,3) -> 2: .2.4..... force : (8,3) -> 2: ......... force : (9,3) -> 4: ...4..... force : (9,3) -> 4: ......... force : (8,4) -> 4: ...45.... force : (8,4) -> 4: ......... force : (9,3) -> 4: ......... force : (9,4) -> 5: ......... start : (9,6) -> 7: ......... start : (9,8) -> 2: .23...... force : (2,7) -> 2: .23...... force : (2,8) -> 3: .23...... force : (9,7) -> 3: .23...... force : (2,7) -> 2: ......... force : (2,8) -> 3: ......... force : (9,7) -> 3: ......... force : (9,8) -> 2: ......... force : (9,8) -> 2: ......... force : (2,7) -> 2: ......... Board State 723894156 849615237 651732984 418256793 296378415 537941862 375129648 182463579 964587321
Update: I'm looking for feedback on Ruby style (e.g. "avoid
and
andor
as they are confusing"), correct use of idioms and the standard library, code organization, etc. This is a Ruby learning exercise, so I want to avoid picking up bad habits early. Since I haven't implemented any brute-force or complex solving yet, performance isn't an issue.
Update: I'm looking for feedback on Ruby style (e.g. "avoid
and
andor
as they are confusing"), correct use of idioms and the standard library, code organization, etc. This is a Ruby learning exercise, so I want to avoid picking up bad habits early. Since I haven't implemented any brute-force or complex solving yet, performance isn't an issue.