multi-puzzle-solver 1.0.3__py3-none-any.whl → 1.0.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of multi-puzzle-solver might be problematic. Click here for more details.
- {multi_puzzle_solver-1.0.3.dist-info → multi_puzzle_solver-1.0.6.dist-info}/METADATA +1024 -387
- multi_puzzle_solver-1.0.6.dist-info/RECORD +73 -0
- puzzle_solver/__init__.py +7 -1
- puzzle_solver/core/utils.py +17 -1
- puzzle_solver/core/utils_visualizer.py +257 -201
- puzzle_solver/puzzles/aquarium/aquarium.py +8 -23
- puzzle_solver/puzzles/battleships/battleships.py +39 -53
- puzzle_solver/puzzles/binairo/binairo.py +2 -2
- puzzle_solver/puzzles/black_box/black_box.py +6 -70
- puzzle_solver/puzzles/connect_the_dots/connect_the_dots.py +50 -0
- puzzle_solver/puzzles/filling/filling.py +11 -34
- puzzle_solver/puzzles/flood_it/parse_map/parse_map.py +0 -1
- puzzle_solver/puzzles/galaxies/galaxies.py +110 -110
- puzzle_solver/puzzles/heyawake/heyawake.py +6 -2
- puzzle_solver/puzzles/kakurasu/kakurasu.py +5 -13
- puzzle_solver/puzzles/kakuro/kakuro.py +6 -2
- puzzle_solver/puzzles/lits/lits.py +6 -4
- puzzle_solver/puzzles/mosaic/mosaic.py +8 -18
- puzzle_solver/puzzles/nonograms/nonograms.py +80 -85
- puzzle_solver/puzzles/nonograms/nonograms_colored.py +221 -0
- puzzle_solver/puzzles/norinori/norinori.py +5 -10
- puzzle_solver/puzzles/nurikabe/nurikabe.py +6 -2
- puzzle_solver/puzzles/palisade/palisade.py +4 -3
- puzzle_solver/puzzles/pearl/pearl.py +15 -27
- puzzle_solver/puzzles/pipes/pipes.py +2 -1
- puzzle_solver/puzzles/range/range.py +19 -55
- puzzle_solver/puzzles/rectangles/rectangles.py +4 -2
- puzzle_solver/puzzles/shingoki/shingoki.py +2 -2
- puzzle_solver/puzzles/singles/singles.py +6 -2
- puzzle_solver/puzzles/slant/slant.py +13 -19
- puzzle_solver/puzzles/slitherlink/slitherlink.py +2 -2
- puzzle_solver/puzzles/star_battle/star_battle.py +13 -7
- puzzle_solver/puzzles/stitches/stitches.py +8 -21
- puzzle_solver/puzzles/sudoku/sudoku.py +5 -11
- puzzle_solver/puzzles/tapa/tapa.py +6 -2
- puzzle_solver/puzzles/tents/tents.py +50 -80
- puzzle_solver/puzzles/tracks/tracks.py +19 -66
- puzzle_solver/puzzles/twiddle/twiddle.py +112 -0
- puzzle_solver/puzzles/unruly/unruly.py +17 -49
- puzzle_solver/puzzles/yin_yang/yin_yang.py +3 -10
- multi_puzzle_solver-1.0.3.dist-info/RECORD +0 -70
- {multi_puzzle_solver-1.0.3.dist-info → multi_puzzle_solver-1.0.6.dist-info}/WHEEL +0 -0
- {multi_puzzle_solver-1.0.3.dist-info → multi_puzzle_solver-1.0.6.dist-info}/top_level.txt +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: multi-puzzle-solver
|
|
3
|
-
Version: 1.0.
|
|
4
|
-
Summary: Efficient solvers for
|
|
3
|
+
Version: 1.0.6
|
|
4
|
+
Summary: Efficient solvers for countless (50+) types of puzzles (like Sudoku, Minesweeper, etc.) with a simple python API.
|
|
5
5
|
Author: Ar-Kareem
|
|
6
6
|
Project-URL: Homepage, https://github.com/Ar-Kareem/puzzle_solver
|
|
7
7
|
Project-URL: Repository, https://github.com/Ar-Kareem/puzzle_solver
|
|
@@ -396,6 +396,18 @@ These are all the puzzles that are implemented in this repo. <br> Click on any o
|
|
|
396
396
|
</a>
|
|
397
397
|
</td>
|
|
398
398
|
</tr>
|
|
399
|
+
<tr>
|
|
400
|
+
<td align="center">
|
|
401
|
+
<a href="#connect-the-dots-puzzle-type-56"><b>Connect the Dots</b><br><br>
|
|
402
|
+
<img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/connect_the_dots_solved.png" alt="Connect the Dots" width="140">
|
|
403
|
+
</a>
|
|
404
|
+
</td>
|
|
405
|
+
<td align="center">
|
|
406
|
+
<a href="#nonograms-colored-puzzle-type-57"><b>Nonograms Colored</b><br><br>
|
|
407
|
+
<img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/nonograms_colored_solved.png" alt="Nonograms Colored" width="140">
|
|
408
|
+
</a>
|
|
409
|
+
</td>
|
|
410
|
+
</tr>
|
|
399
411
|
</table>
|
|
400
412
|
|
|
401
413
|
</div>
|
|
@@ -465,6 +477,8 @@ These are all the puzzles that are implemented in this repo. <br> Click on any o
|
|
|
465
477
|
- [Sudoku Killer (Puzzle Type #53)](#sudoku-killer-puzzle-type-53)
|
|
466
478
|
- [Flood It (Puzzle Type #54)](#flood-it-puzzle-type-54)
|
|
467
479
|
- [Pipes (Puzzle Type #55)](#pipes-puzzle-type-55)
|
|
480
|
+
- [Connect the Dots (Puzzle Type #56)](#connect-the-dots-puzzle-type-56)
|
|
481
|
+
- [Nonograms Colored (Puzzle Type #57)](#nonograms-colored-puzzle-type-57)
|
|
468
482
|
- [Why SAT / CP-SAT?](#why-sat--cp-sat)
|
|
469
483
|
- [Testing](#testing)
|
|
470
484
|
- [Contributing](#contributing)
|
|
@@ -478,7 +492,7 @@ The puzzles that have solvers implemented are listed below. Each puzzle has a si
|
|
|
478
492
|
|
|
479
493
|
## Nonograms (Puzzle Type #1)
|
|
480
494
|
|
|
481
|
-
|
|
495
|
+
Also known as Hanjie, Paint by Numbers, Griddlers, Pic-a-Pix, Picross, and Pattern.
|
|
482
496
|
|
|
483
497
|
* [**Play online**](https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/pattern.html)
|
|
484
498
|
|
|
@@ -538,21 +552,39 @@ solutions = binst.solve_and_print()
|
|
|
538
552
|
**Script Output**
|
|
539
553
|
```python
|
|
540
554
|
Solution found
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
555
|
+
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
|
|
556
|
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
|
|
557
|
+
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
|
558
|
+
0│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │▒▒▒│▒▒▒│▒▒▒│ │ │ │ │
|
|
559
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
560
|
+
1│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │ │ │ │ │▒▒▒│ │▒▒▒│
|
|
561
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
562
|
+
2│▒▒▒│▒▒▒│ │ │ │ │ │ │ │ │ │▒▒▒│▒▒▒│▒▒▒│ │
|
|
563
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
564
|
+
3│▒▒▒│▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒│▒▒▒│▒▒▒│
|
|
565
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
566
|
+
4│▒▒▒│▒▒▒│▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒│▒▒▒│
|
|
567
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
568
|
+
5│▒▒▒│ │ │ │▒▒▒│ │▒▒▒│ │ │▒▒▒│ │ │ │▒▒▒│▒▒▒│
|
|
569
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
570
|
+
6│▒▒▒│ │ │ │ │ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │ │▒▒▒│
|
|
571
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
572
|
+
7│▒▒▒│ │ │ │ │ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│
|
|
573
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
574
|
+
8│ │ │ │ │ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │
|
|
575
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
576
|
+
9│ │ │ │ │ │▒▒▒│▒▒▒│ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │ │ │
|
|
577
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
578
|
+
10│ │ │ │ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │ │ │
|
|
579
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
580
|
+
11│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │ │ │ │
|
|
581
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
582
|
+
12│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │ │▒▒▒│ │▒▒▒│ │ │ │
|
|
583
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
584
|
+
13│ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │ │ │ │▒▒▒│▒▒▒│▒▒▒│ │ │ │
|
|
585
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
586
|
+
14│ │▒▒▒│▒▒▒│▒▒▒│ │ │ │ │ │ │ │▒▒▒│▒▒▒│ │ │
|
|
587
|
+
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
|
556
588
|
Solutions found: 1
|
|
557
589
|
status: OPTIMAL
|
|
558
590
|
Time taken: 0.04 seconds
|
|
@@ -566,7 +598,7 @@ Time taken: 0.04 seconds
|
|
|
566
598
|
|
|
567
599
|
## Sudoku (Puzzle Type #2)
|
|
568
600
|
|
|
569
|
-
|
|
601
|
+
Also known as Number Place and Solo.
|
|
570
602
|
|
|
571
603
|
* [**Play online**](https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/solo.html)
|
|
572
604
|
|
|
@@ -628,22 +660,41 @@ assert len(solutions) == 1, f'unique solutions != 1, == {len(solutions)}'
|
|
|
628
660
|
**Script Output**
|
|
629
661
|
```python
|
|
630
662
|
Solution found
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
663
|
+
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
|
|
664
|
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
|
665
|
+
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
|
666
|
+
0│ g │ 7 │ 5 │ 4 │ 9 │ 1 │ c │ e │ d │ f │ b │ 8 │ 2 │ 6 │ 3 │ a │
|
|
667
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
668
|
+
1│ 3 │ 9 │ d │ e │ f │ a │ 7 │ g │ 2 │ 6 │ 4 │ c │ 5 │ 1 │ 8 │ b │
|
|
669
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
670
|
+
2│ b │ c │ 1 │ 8 │ 5 │ 6 │ 3 │ 2 │ e │ 9 │ 7 │ a │ 4 │ g │ f │ d │
|
|
671
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
672
|
+
3│ f │ 6 │ 2 │ a │ b │ 8 │ d │ 4 │ 1 │ 3 │ 5 │ g │ c │ 7 │ 9 │ e │
|
|
673
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
674
|
+
4│ 4 │ a │ e │ 3 │ 8 │ f │ 1 │ 6 │ 5 │ b │ 2 │ 9 │ g │ d │ c │ 7 │
|
|
675
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
676
|
+
5│ 6 │ g │ f │ c │ e │ d │ 2 │ 5 │ 4 │ 7 │ a │ 1 │ 3 │ 9 │ b │ 8 │
|
|
677
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
678
|
+
6│ d │ 1 │ 9 │ 2 │ a │ 3 │ b │ 7 │ c │ g │ 8 │ 6 │ e │ f │ 5 │ 4 │
|
|
679
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
680
|
+
7│ 5 │ b │ 8 │ 7 │ g │ 4 │ 9 │ c │ f │ d │ 3 │ e │ 1 │ a │ 2 │ 6 │
|
|
681
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
682
|
+
8│ 2 │ e │ a │ b │ d │ c │ g │ 1 │ 3 │ 8 │ 9 │ f │ 7 │ 4 │ 6 │ 5 │
|
|
683
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
684
|
+
9│ 8 │ 4 │ 6 │ 1 │ 3 │ b │ e │ f │ 7 │ 5 │ c │ d │ a │ 2 │ g │ 9 │
|
|
685
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
686
|
+
10│ 9 │ f │ 3 │ g │ 7 │ 5 │ 8 │ a │ 6 │ 4 │ e │ 2 │ d │ b │ 1 │ c │
|
|
687
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
688
|
+
11│ c │ d │ 7 │ 5 │ 4 │ 2 │ 6 │ 9 │ g │ a │ 1 │ b │ 8 │ 3 │ e │ f │
|
|
689
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
690
|
+
12│ 7 │ 5 │ g │ d │ 2 │ 9 │ a │ b │ 8 │ c │ f │ 3 │ 6 │ e │ 4 │ 1 │
|
|
691
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
692
|
+
13│ a │ 2 │ b │ 6 │ c │ e │ 5 │ 3 │ 9 │ 1 │ d │ 4 │ f │ 8 │ 7 │ g │
|
|
693
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
694
|
+
14│ e │ 8 │ c │ f │ 1 │ g │ 4 │ d │ b │ 2 │ 6 │ 7 │ 9 │ 5 │ a │ 3 │
|
|
695
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
696
|
+
15│ 1 │ 3 │ 4 │ 9 │ 6 │ 7 │ f │ 8 │ a │ e │ g │ 5 │ b │ c │ d │ 2 │
|
|
697
|
+
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
|
647
698
|
Solutions found: 1
|
|
648
699
|
status: OPTIMAL
|
|
649
700
|
Time taken: 0.04 seconds
|
|
@@ -798,6 +849,8 @@ Time taken: 0.02 seconds
|
|
|
798
849
|
|
|
799
850
|
## Light Up (Puzzle Type #5)
|
|
800
851
|
|
|
852
|
+
Also called Akari.
|
|
853
|
+
|
|
801
854
|
* [**Play online**](https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/lightup.html)
|
|
802
855
|
|
|
803
856
|
* [**Instructions**](https://www.chiark.greenend.org.uk/~sgtatham/puzzles/doc/lightup.html#lightup)
|
|
@@ -919,26 +972,47 @@ binst = solver.Board(board=board, sides={'top': top, 'side': side})
|
|
|
919
972
|
solutions = binst.solve_and_print()
|
|
920
973
|
```
|
|
921
974
|
**Script Output**
|
|
922
|
-
|
|
975
|
+
|
|
976
|
+
(Note: ▲ represents a tent)
|
|
977
|
+
|
|
978
|
+
```
|
|
923
979
|
Solution found
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
980
|
+
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
|
|
981
|
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
|
|
982
|
+
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
|
983
|
+
0│ │ | │ ▲ │ │ │ │ │ ▲ │ | │ │ | │ ▲ │ | │ ▲ │ │
|
|
984
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
985
|
+
1│ │ │ │ │ | │ ▲ │ │ | │ │ | │ │ │ | │ │ │
|
|
986
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
987
|
+
2│ ▲ │ | │ ▲ │ | │ │ │ │ ▲ │ │ ▲ │ │ │ ▲ │ │ ▲ │
|
|
988
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
989
|
+
3│ │ │ │ │ │ │ │ │ | │ │ │ │ | │ │ | │
|
|
990
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
991
|
+
4│ │ ▲ │ │ │ ▲ │ │ ▲ │ │ ▲ │ │ │ │ ▲ │ │ │
|
|
992
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
993
|
+
5│ │ | │ │ │ | │ │ | │ │ │ | │ ▲ │ │ | │ | │ ▲ │
|
|
994
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
995
|
+
6│ │ | │ │ │ | │ ▲ │ │ ▲ │ | │ │ │ │ ▲ │ │ │
|
|
996
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
997
|
+
7│ │ ▲ │ │ │ │ │ | │ │ │ │ │ │ │ │ │
|
|
998
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
999
|
+
8│ │ │ │ │ ▲ │ | │ ▲ │ │ │ ▲ │ | │ │ ▲ │ | │ ▲ │
|
|
1000
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1001
|
+
9│ ▲ │ │ ▲ │ | │ │ │ │ │ │ │ │ │ | │ │ | │
|
|
1002
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1003
|
+
10│ | │ │ │ │ │ │ │ | │ ▲ │ │ │ | │ ▲ │ │ ▲ │
|
|
1004
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1005
|
+
11│ | │ │ │ ▲ │ | │ ▲ │ | │ │ │ │ │ │ │ │ │
|
|
1006
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1007
|
+
12│ ▲ │ │ │ │ │ │ │ │ | │ ▲ │ | │ ▲ │ │ ▲ │ | │
|
|
1008
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1009
|
+
13│ │ | │ ▲ │ │ ▲ │ | │ ▲ │ │ │ │ │ │ | │ │ │
|
|
1010
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1011
|
+
14│ ▲ │ | │ │ │ | │ │ │ │ ▲ │ | │ ▲ │ | │ ▲ │ │ │
|
|
1012
|
+
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
|
939
1013
|
Solutions found: 1
|
|
940
1014
|
status: OPTIMAL
|
|
941
|
-
Time taken: 0.
|
|
1015
|
+
Time taken: 0.01 seconds
|
|
942
1016
|
```
|
|
943
1017
|
|
|
944
1018
|
**Solved puzzle**
|
|
@@ -949,6 +1023,8 @@ Time taken: 0.02 seconds
|
|
|
949
1023
|
|
|
950
1024
|
## Filling (Puzzle Type #7)
|
|
951
1025
|
|
|
1026
|
+
Also known as Fillomino
|
|
1027
|
+
|
|
952
1028
|
* [**Play online**](https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/filling.html)
|
|
953
1029
|
|
|
954
1030
|
* [**Instructions**](https://www.chiark.greenend.org.uk/~sgtatham/puzzles/doc/filling.html#filling)
|
|
@@ -989,15 +1065,24 @@ assert len(solutions) == 1, f'unique solutions != 1, == {len(solutions)}'
|
|
|
989
1065
|
**Script Output**
|
|
990
1066
|
```python
|
|
991
1067
|
Solution found
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
1068
|
+
|
|
1069
|
+
0 1 2 3 4 5 6
|
|
1070
|
+
┌───────┬───────┬───┬───────┐
|
|
1071
|
+
0│ 4 4 │ 2 2 │ 4 │ 2 2 │
|
|
1072
|
+
│ ├───┬───┘ ├───────┤
|
|
1073
|
+
1│ 4 4 │ 7 │ 4 4 │ 3 3 │
|
|
1074
|
+
├───────┘ ├───┐ ├───┐ │
|
|
1075
|
+
2│ 7 7 7 │ 3 │ 4 │ 5 │ 3 │
|
|
1076
|
+
│ ┌───────┤ └───┤ └───┤
|
|
1077
|
+
3│ 7 │ 6 6 │ 3 3 │ 5 5 │
|
|
1078
|
+
│ └───┐ └───┬───┤ │
|
|
1079
|
+
4│ 7 7 │ 6 6 │ 4 │ 5 5 │
|
|
1080
|
+
├───┬───┘ ┌───┤ └───────┤
|
|
1081
|
+
5│ 1 │ 6 6 │ 1 │ 4 4 4 │
|
|
1082
|
+
└───┴───────┴───┴───────────┘
|
|
998
1083
|
Solutions found: 1
|
|
999
1084
|
status: OPTIMAL
|
|
1000
|
-
Time taken: 0.
|
|
1085
|
+
Time taken: 0.15 seconds
|
|
1001
1086
|
```
|
|
1002
1087
|
|
|
1003
1088
|
**Solved puzzle**
|
|
@@ -1008,6 +1093,8 @@ Time taken: 0.10 seconds
|
|
|
1008
1093
|
|
|
1009
1094
|
## Keen (Puzzle Type #8)
|
|
1010
1095
|
|
|
1096
|
+
Also known as KenKen
|
|
1097
|
+
|
|
1011
1098
|
* [**Play online**](https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/keen.html)
|
|
1012
1099
|
|
|
1013
1100
|
* [**Instructions**](https://www.chiark.greenend.org.uk/~sgtatham/puzzles/doc/keen.html#keen)
|
|
@@ -1152,7 +1239,7 @@ Time taken: 0.03 seconds
|
|
|
1152
1239
|
|
|
1153
1240
|
## Singles (Puzzle Type #10)
|
|
1154
1241
|
|
|
1155
|
-
Also known as
|
|
1242
|
+
Also known as Hitori.
|
|
1156
1243
|
|
|
1157
1244
|
* [**Play online 1**](https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/singles.html)
|
|
1158
1245
|
|
|
@@ -1375,7 +1462,7 @@ Time taken: 0.03 seconds
|
|
|
1375
1462
|
|
|
1376
1463
|
## Range (Puzzle Type #13)
|
|
1377
1464
|
|
|
1378
|
-
Also known as
|
|
1465
|
+
Also known as Kurodoko.
|
|
1379
1466
|
|
|
1380
1467
|
* [**Play online 1**](https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/range.html)
|
|
1381
1468
|
|
|
@@ -1406,17 +1493,17 @@ Code to utilize this package and solve the puzzle:
|
|
|
1406
1493
|
import numpy as np
|
|
1407
1494
|
from puzzle_solver import range_solver as solver
|
|
1408
1495
|
clues = np.array([
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1496
|
+
[' ', '4 ', '2 ', ' ', ' ', '3 ', ' ', ' ', ' ', '8 ', ' ', ' ', ' ', ' ', '6 ', ' '],
|
|
1497
|
+
[' ', ' ', ' ', ' ', ' ', '13', ' ', '18', ' ', ' ', '14', ' ', ' ', '22', ' ', ' '],
|
|
1498
|
+
[' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '12', ' ', ' ', ' ', ' '],
|
|
1499
|
+
[' ', ' ', ' ', ' ', '12', ' ', '11', ' ', ' ', ' ', '9 ', ' ', ' ', ' ', ' ', ' '],
|
|
1500
|
+
['7 ', ' ', ' ', ' ', ' ', ' ', '6 ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '],
|
|
1501
|
+
[' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '],
|
|
1502
|
+
[' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '12', ' ', ' ', ' ', ' ', ' ', '5 '],
|
|
1503
|
+
[' ', ' ', ' ', ' ', ' ', '9 ', ' ', ' ', ' ', '9 ', ' ', '4 ', ' ', ' ', ' ', ' '],
|
|
1504
|
+
[' ', ' ', ' ', ' ', '6 ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '],
|
|
1505
|
+
[' ', ' ', '10', ' ', ' ', '7 ', ' ', ' ', '13', ' ', '10', ' ', ' ', ' ', ' ', ' '],
|
|
1506
|
+
[' ', '7 ', ' ', ' ', ' ', ' ', '6 ', ' ', ' ', ' ', '6 ', ' ', ' ', '13', '5 ', ' '],
|
|
1420
1507
|
])
|
|
1421
1508
|
binst = solver.Board(clues)
|
|
1422
1509
|
solutions = binst.solve_and_print()
|
|
@@ -1424,20 +1511,34 @@ solutions = binst.solve_and_print()
|
|
|
1424
1511
|
**Script Output**
|
|
1425
1512
|
```python
|
|
1426
1513
|
Solution:
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1514
|
+
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
|
|
1515
|
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
|
1516
|
+
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
|
1517
|
+
0│▒▒▒│ 4 │ 2 │▒▒▒│ │ 3 │▒▒▒│ │▒▒▒│ 8 │▒▒▒│ │▒▒▒│ │ 6 │ │
|
|
1518
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1519
|
+
1│ │ │▒▒▒│ │ │13 │ │18 │ │ │14 │ │ │22 │ │▒▒▒│
|
|
1520
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1521
|
+
2│▒▒▒│ │ │ │ │▒▒▒│ │ │ │ │ │12 │ │ │ │ │
|
|
1522
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1523
|
+
3│ │▒▒▒│ │▒▒▒│12 │ │11 │ │ │ │ 9 │▒▒▒│ │ │ │ │
|
|
1524
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1525
|
+
4│ 7 │ │ │ │ │▒▒▒│ 6 │ │▒▒▒│ │▒▒▒│ │ │ │▒▒▒│ │
|
|
1526
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1527
|
+
5│ │ │▒▒▒│ │ │ │ │ │ │ │ │▒▒▒│ │ │ │▒▒▒│
|
|
1528
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1529
|
+
6│▒▒▒│ │ │ │▒▒▒│ │▒▒▒│ │ │12 │ │ │▒▒▒│ │ │ 5 │
|
|
1530
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1531
|
+
7│ │ │ │ │ │ 9 │ │▒▒▒│ │ 9 │▒▒▒│ 4 │ │ │▒▒▒│ │
|
|
1532
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1533
|
+
8│ │▒▒▒│ │ │ 6 │▒▒▒│ │ │ │▒▒▒│ │▒▒▒│ │ │ │ │
|
|
1534
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1535
|
+
9│ │ │10 │ │ │ 7 │▒▒▒│ │13 │ │10 │ │ │ │ │▒▒▒│
|
|
1536
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1537
|
+
10│▒▒▒│ 7 │ │ │ │ │ 6 │▒▒▒│ │ │ 6 │ │▒▒▒│13 │ 5 │ │
|
|
1538
|
+
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
|
1438
1539
|
Solutions found: 1
|
|
1439
1540
|
status: OPTIMAL
|
|
1440
|
-
Time taken: 0.
|
|
1541
|
+
Time taken: 0.07 seconds
|
|
1441
1542
|
```
|
|
1442
1543
|
|
|
1443
1544
|
**Solved puzzle**
|
|
@@ -1554,23 +1655,40 @@ solutions = binst.solve_and_print()
|
|
|
1554
1655
|
**Script Output**
|
|
1555
1656
|
```python
|
|
1556
1657
|
Solution found
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1658
|
+
0 0 0 0 0 0 0 0 0 0 1 1 1 1
|
|
1659
|
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3
|
|
1660
|
+
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
|
1661
|
+
0│ │ │▒▒▒│▒▒▒│ │▒▒▒│ │▒▒▒│▒▒▒│ │▒▒▒│ │ │▒▒▒│
|
|
1662
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1663
|
+
1│▒▒▒│▒▒▒│ │ │▒▒▒│ │▒▒▒│ │ │▒▒▒│ │▒▒▒│▒▒▒│ │
|
|
1664
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1665
|
+
2│ │ │▒▒▒│ │ │▒▒▒│▒▒▒│ │▒▒▒│ │▒▒▒│▒▒▒│ │▒▒▒│
|
|
1666
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1667
|
+
3│ │▒▒▒│ │▒▒▒│▒▒▒│ │ │▒▒▒│ │ │▒▒▒│ │▒▒▒│▒▒▒│
|
|
1668
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1669
|
+
4│▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│▒▒▒│ │ │▒▒▒│ │
|
|
1670
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1671
|
+
5│▒▒▒│ │ │▒▒▒│ │▒▒▒│▒▒▒│ │▒▒▒│▒▒▒│ │▒▒▒│ │ │
|
|
1672
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1673
|
+
6│ │▒▒▒│▒▒▒│ │ │▒▒▒│ │▒▒▒│ │ │▒▒▒│▒▒▒│ │▒▒▒│
|
|
1674
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1675
|
+
7│▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │ │▒▒▒│▒▒▒│ │▒▒▒│ │
|
|
1676
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1677
|
+
8│▒▒▒│▒▒▒│ │▒▒▒│▒▒▒│ │▒▒▒│ │▒▒▒│ │ │▒▒▒│ │ │
|
|
1678
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1679
|
+
9│ │ │▒▒▒│▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │ │▒▒▒│▒▒▒│
|
|
1680
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1681
|
+
10│▒▒▒│▒▒▒│ │ │▒▒▒│ │ │▒▒▒│▒▒▒│ │▒▒▒│ │▒▒▒│ │
|
|
1682
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1683
|
+
11│▒▒▒│ │▒▒▒│ │ │▒▒▒│▒▒▒│ │ │▒▒▒│ │▒▒▒│ │▒▒▒│
|
|
1684
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1685
|
+
12│ │▒▒▒│ │▒▒▒│▒▒▒│ │ │▒▒▒│ │▒▒▒│▒▒▒│ │ │▒▒▒│
|
|
1686
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1687
|
+
13│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│▒▒▒│ │ │▒▒▒│▒▒▒│ │
|
|
1688
|
+
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
|
1571
1689
|
Solutions found: 1
|
|
1572
1690
|
status: OPTIMAL
|
|
1573
|
-
Time taken: 0.
|
|
1691
|
+
Time taken: 0.02 seconds
|
|
1574
1692
|
```
|
|
1575
1693
|
|
|
1576
1694
|
**Solved puzzle**
|
|
@@ -1625,24 +1743,43 @@ solutions = binst.solve_and_print()
|
|
|
1625
1743
|
```
|
|
1626
1744
|
**Script Output**
|
|
1627
1745
|
```python
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1746
|
+
Solution found
|
|
1747
|
+
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
|
|
1748
|
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
|
|
1749
|
+
|
|
1750
|
+
0 . . . . . . ┌───────────────────────┐ ┌───┐
|
|
1751
|
+
│ │ │ │
|
|
1752
|
+
1 . . . . . . │ . ┌───────┐ . └───┘ │
|
|
1753
|
+
│ │ │ │
|
|
1754
|
+
2 . . . . . . │ . │ . └───────────────┘
|
|
1755
|
+
│ │
|
|
1756
|
+
3 . . ┌───┐ ┌───┐ │ ┌───┘ . . . . . .
|
|
1757
|
+
│ │ │ │ │ │
|
|
1758
|
+
4 ┌───────┘ │ │ └───┘ └───┐ . . . . ┌───┐
|
|
1759
|
+
│ │ │ │ │ │
|
|
1760
|
+
5 └───────┐ └───┘ . . ┌───┘ . . . ┌───┘ │
|
|
1761
|
+
│ │ │ │
|
|
1762
|
+
6 . . │ . . . ┌───┘ ┌───────────────┘ . │
|
|
1763
|
+
│ │ │ │
|
|
1764
|
+
7 . ┌───┘ . . . └───────┘ . . . ┌───────┘
|
|
1765
|
+
│ │
|
|
1766
|
+
8 . └───┐ . . . . . ┌───────────┐ │ ┌───┐
|
|
1767
|
+
│ │ │ │ │ │
|
|
1768
|
+
9 ┌───────┘ . . . . . │ ┌───┐ └───┘ │ │
|
|
1769
|
+
│ │ │ │ │ │
|
|
1770
|
+
10 │ . . . . . . . └───┘ └───┐ . │ │
|
|
1771
|
+
│ │ │ │
|
|
1772
|
+
11 │ . . . . . . ┌───────────────┘ ┌───┘ │
|
|
1773
|
+
│ │ │ │
|
|
1774
|
+
12──┘ . . . . . . └───────────────────┘ ┌───┘
|
|
1775
|
+
│
|
|
1776
|
+
13 . . . . . . . . . . . . . └───┐
|
|
1777
|
+
│
|
|
1778
|
+
14 . . . . . . . . . . . . . ┌───┘
|
|
1779
|
+
│
|
|
1643
1780
|
Solutions found: 1
|
|
1644
1781
|
status: OPTIMAL
|
|
1645
|
-
Time taken: 1.
|
|
1782
|
+
Time taken: 1.01 seconds
|
|
1646
1783
|
```
|
|
1647
1784
|
|
|
1648
1785
|
**Solved puzzle**
|
|
@@ -1697,24 +1834,42 @@ solutions = binst.solve_and_print()
|
|
|
1697
1834
|
**Script Output**
|
|
1698
1835
|
```python
|
|
1699
1836
|
Solution found
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1837
|
+
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
|
|
1838
|
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
|
|
1839
|
+
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
|
1840
|
+
0│ │▒▒▒│ 2 │ 1 │ │ │ │ 3 │▒▒▒│ 4 │▒▒▒│ 2 │ │▒▒▒│▒▒▒│
|
|
1841
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1842
|
+
1│ 3 │▒▒▒│ │ │▒▒▒│▒▒▒│ │▒▒▒│▒▒▒│ │▒▒▒│ │ 2 │▒▒▒│▒▒▒│
|
|
1843
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1844
|
+
2│ 4 │▒▒▒│▒▒▒│ 5 │▒▒▒│▒▒▒│ │ │ 5 │▒▒▒│▒▒▒│ 3 │ 2 │ 5 │▒▒▒│
|
|
1845
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1846
|
+
3│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ 4 │ │▒▒▒│▒▒▒│▒▒▒│ │ │ │▒▒▒│ 5 │▒▒▒│
|
|
1847
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1848
|
+
4│ │▒▒▒│▒▒▒│ │ │▒▒▒│ │▒▒▒│▒▒▒│▒▒▒│ │▒▒▒│▒▒▒│▒▒▒│ │
|
|
1849
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1850
|
+
5│ 3 │▒▒▒│ │▒▒▒│ │▒▒▒│▒▒▒│ 7 │▒▒▒│ 4 │ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│
|
|
1851
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1852
|
+
6│▒▒▒│ │▒▒▒│ │ 5 │▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │ 1 │ 3 │ 4 │ 5 │ │
|
|
1853
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1854
|
+
7│ │ 5 │▒▒▒│ 4 │▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │ 3 │ │▒▒▒│ │▒▒▒│
|
|
1855
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1856
|
+
8│ 3 │▒▒▒│▒▒▒│ │ │ │ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │▒▒▒│ │
|
|
1857
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1858
|
+
9│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │ 4 │ 6 │▒▒▒│▒▒▒│ 3 │ │▒▒▒│ │
|
|
1859
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1860
|
+
10│ 5 │▒▒▒│ │▒▒▒│▒▒▒│ │▒▒▒│ │▒▒▒│▒▒▒│ │ 3 │ 5 │▒▒▒│ │
|
|
1861
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1862
|
+
11│▒▒▒│▒▒▒│ │ 5 │▒▒▒│ 5 │ 3 │▒▒▒│▒▒▒│▒▒▒│ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│
|
|
1863
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1864
|
+
12│ 2 │ │▒▒▒│ │▒▒▒│ 4 │▒▒▒│ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │▒▒▒│
|
|
1865
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1866
|
+
13│ 1 │ │▒▒▒│▒▒▒│ │ │▒▒▒│ 5 │▒▒▒│▒▒▒│ │▒▒▒│▒▒▒│ 6 │ │
|
|
1867
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
1868
|
+
14│▒▒▒│ │▒▒▒│ │ 2 │▒▒▒│▒▒▒│ │ 2 │ │ │ │▒▒▒│▒▒▒│▒▒▒│
|
|
1869
|
+
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
|
1715
1870
|
Solutions found: 1
|
|
1716
1871
|
status: OPTIMAL
|
|
1717
|
-
Time taken: 0.
|
|
1872
|
+
Time taken: 0.02 seconds
|
|
1718
1873
|
```
|
|
1719
1874
|
|
|
1720
1875
|
**Solved puzzle**
|
|
@@ -1785,6 +1940,8 @@ Time taken: 0.01 seconds
|
|
|
1785
1940
|
|
|
1786
1941
|
## Pearl (Puzzle Type #19)
|
|
1787
1942
|
|
|
1943
|
+
Also known as Masyu
|
|
1944
|
+
|
|
1788
1945
|
* [**Play online**](https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/pearl.html)
|
|
1789
1946
|
|
|
1790
1947
|
* [**Instructions**](https://www.chiark.greenend.org.uk/~sgtatham/puzzles/doc/pearl.html#pearl)
|
|
@@ -1828,17 +1985,28 @@ solutions = binst.solve_and_print()
|
|
|
1828
1985
|
**Script Output**
|
|
1829
1986
|
```python
|
|
1830
1987
|
Solution found
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1988
|
+
0 0 0 0 0 0 0 0 0 0 1 1
|
|
1989
|
+
0 1 2 3 4 5 6 7 8 9 0 1
|
|
1990
|
+
|
|
1991
|
+
0 B───────────W───┐ ┌───W───┐ B───────────B
|
|
1992
|
+
│ │ │ │ │ │
|
|
1993
|
+
1 │ ┌───────B └───┘ ┌───┘ │ ┌───┐ │
|
|
1994
|
+
│ │ │ │ │ │ │ │
|
|
1995
|
+
2 └───┘ . │ ┌───┐ └───────B │ │ │
|
|
1996
|
+
│ │ │ │ │ │
|
|
1997
|
+
3 . B───────B │ W . B───────B W │
|
|
1998
|
+
│ │ │ │ │ │
|
|
1999
|
+
4 . │ B───────B └───┐ │ ┌───┐ └───┘
|
|
2000
|
+
│ │ │ │ │ │
|
|
2001
|
+
5 ┌───┘ │ . ┌───┐ │ W W └───────B
|
|
2002
|
+
│ │ │ │ │ │ │ │
|
|
2003
|
+
6 │ . B───────┘ │ │ └───┘ . . │
|
|
2004
|
+
│ │ │ │
|
|
2005
|
+
7 B───────────────────B B───────────────────B
|
|
2006
|
+
|
|
1839
2007
|
Solutions found: 1
|
|
1840
2008
|
status: OPTIMAL
|
|
1841
|
-
Time taken: 0.
|
|
2009
|
+
Time taken: 0.12 seconds
|
|
1842
2010
|
```
|
|
1843
2011
|
|
|
1844
2012
|
**Solved puzzle**
|
|
@@ -1849,6 +2017,8 @@ Time taken: 0.98 seconds
|
|
|
1849
2017
|
|
|
1850
2018
|
## Bridges (Puzzle Type #20)
|
|
1851
2019
|
|
|
2020
|
+
Also known as Hashiwokakero
|
|
2021
|
+
|
|
1852
2022
|
* [**Play online**](https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/bridges.html)
|
|
1853
2023
|
|
|
1854
2024
|
* [**Instructions**](https://www.chiark.greenend.org.uk/~sgtatham/puzzles/doc/bridges.html#bridges)
|
|
@@ -2462,21 +2632,39 @@ solutions = binst.solve_and_print()
|
|
|
2462
2632
|
|
|
2463
2633
|
```python
|
|
2464
2634
|
Solution found
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
|
|
2478
|
-
|
|
2479
|
-
|
|
2635
|
+
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
|
|
2636
|
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
|
|
2637
|
+
┌───────────────┬───────────┬───────────────┬───┬───────────┐
|
|
2638
|
+
0│ │ │ │ │ O O O │
|
|
2639
|
+
│ ┌───────────┘ ┌───┬───┴───┐ ┌───┐ │ └───┐ ┌───┤
|
|
2640
|
+
1│ │ │ │ │ O │ │ O │ O O │ O │ │
|
|
2641
|
+
│ └───┐ ┌───┬───┘ └───┬───┴───┤ ├───┴───────┼───┘ │
|
|
2642
|
+
2│ │ │ │ │ │ O │ │ │
|
|
2643
|
+
│ ┌───┴───┘ ├───┐ │ ├───┴───┐ ┌───┘ │
|
|
2644
|
+
3│ │ │ │ O O │ │ │ │ │
|
|
2645
|
+
│ └───┐ │ ├───────┘ ┌───┴───┐ │ └───┬───┐ │
|
|
2646
|
+
4│ O O │ │ │ │ O O │ │ │ │ O │
|
|
2647
|
+
├───┬───┘ ┌───┘ │ ┌───────┴───┬───┘ │ │ ├───┤
|
|
2648
|
+
5│ │ │ │ │ O O O │ │ │ │ │
|
|
2649
|
+
│ │ │ │ └───┬───┬───┘ ┌───┤ │ │ │
|
|
2650
|
+
6│ O │ O O │ │ O O │ │ O O │ │ O O │ │ O │
|
|
2651
|
+
├───┴───┐ ├───────┴───┬───┘ ├───┬───┘ └───┐ │ │ │
|
|
2652
|
+
7│ O O │ O │ │ O O │ │ O O O │ O │ │ O │
|
|
2653
|
+
│ ┌───┼───┴───────┐ │ ┌───┴───┼───────────┼───┤ └───┤
|
|
2654
|
+
8│ O │ │ │ │ O │ O O │ │ O │ │
|
|
2655
|
+
├───┘ └───┐ ┌───┘ ├───┼───────┘ ┌───────┤ │ ┌───┤
|
|
2656
|
+
9│ │ │ O O │ │ │ │ O │ │ │
|
|
2657
|
+
│ ┌───┘ ├───────┤ └───┐ ├───────┤ └───┤ │
|
|
2658
|
+
10│ │ O O │ │ │ O O │ │ O O │ O │
|
|
2659
|
+
│ ├───┬───┘ ┌───┘ └───┬───┴───────┤ ┌───┴───┤
|
|
2660
|
+
11│ │ │ │ │ │ O │ O O │
|
|
2661
|
+
├───┐ │ └───────┴───────┐ │ ┌───────┼───┴───┬───┤
|
|
2662
|
+
12│ │ O │ │ O O │ │ O O │ O O │ │
|
|
2663
|
+
│ └───┴───┬───────┐ ┌───┘ ├───┴───────┴───────┘ │
|
|
2664
|
+
13│ O O O │ O O │ │ O O O │ │
|
|
2665
|
+
│ └───┬───┘ ├───────┬───┴───┐ ┌───────┤
|
|
2666
|
+
14│ O O O O │ O O │ O O │ O O │ │ O O │
|
|
2667
|
+
└───────────────┴───────┴───────┴───────┴───────────┴───────┘
|
|
2480
2668
|
Solutions found: 1
|
|
2481
2669
|
status: OPTIMAL
|
|
2482
2670
|
Time taken: 0.02 seconds
|
|
@@ -2543,21 +2731,39 @@ Note: `solver.Board` accepts an optional `connection_count=N` parameter to speci
|
|
|
2543
2731
|
|
|
2544
2732
|
```python
|
|
2545
2733
|
Solution found
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
|
|
2549
|
-
|
|
2550
|
-
|
|
2551
|
-
|
|
2552
|
-
|
|
2553
|
-
|
|
2554
|
-
|
|
2555
|
-
|
|
2556
|
-
|
|
2557
|
-
|
|
2558
|
-
|
|
2559
|
-
|
|
2560
|
-
|
|
2734
|
+
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
|
|
2735
|
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
|
|
2736
|
+
┌───────────────────┬───────────────────────────────┬───────┐
|
|
2737
|
+
0│ . . . . . │ . . . . . . . . │ . . │
|
|
2738
|
+
│ ┌───────┬───┐ └───┐ ┌───────────────────┐ └───┐ │
|
|
2739
|
+
1│ O─┼─O O │ O─┼─O O─┼─O │ . . . . . │ O O─┼─O │
|
|
2740
|
+
│ │ ┌─┼─┘ └───┐ ├───┘ └─┼─────┤ │
|
|
2741
|
+
2│ . │ . │ O . . │ O─┼─O . . . . . O O─┼─O │
|
|
2742
|
+
│ │ │ └───┤ ┌───┐ ┌───────────────┘ │
|
|
2743
|
+
3│ O │ . │ . . . O─┼─O . │ . │ O │ . . . . . │
|
|
2744
|
+
├─┼─┤ └───────────┐ ├───────┘ └─┼─┴───────────┐ │
|
|
2745
|
+
4│ O │ . . . . │ O─┼─O . . O . . . │ . . │
|
|
2746
|
+
│ └───────┐ │ └───┐ ┌───────────┐ ┌───┘ │
|
|
2747
|
+
5│ . . . │ . . │ . . │ . │ . . . │ . │ . O . │
|
|
2748
|
+
│ ┌───┘ │ ├───┘ │ └─────┼─┐ │
|
|
2749
|
+
6│ . . │ O . . │ . O─┼─O . O . │ . . O │ . │
|
|
2750
|
+
│ └─┼─────────┼───────┘ ┌─────┼─┐ │ ┌───┐ │ │
|
|
2751
|
+
7│ . O O . O─┼─O . . │ . O │ . │ O─┼─O │ O │ . │
|
|
2752
|
+
├─────┼─┐ ┌───┴───────────┘ │ └───┘ ├─┼─┤ │
|
|
2753
|
+
8│ . O │ . . │ . . . . . . │ . . . │ O │ . │
|
|
2754
|
+
│ │ ┌───┘ └───┐ │ │ │
|
|
2755
|
+
9│ . . │ O─┼─O . . . . . . O │ . O─┼─O │ O │
|
|
2756
|
+
│ ┌───┴───┘ ┌───────────┬───┐ ┌─┼─┴───────┘ └─┼─┤
|
|
2757
|
+
10│ . │ . O . │ . . O─┼─O │ . . │ O . . . O │
|
|
2758
|
+
│ └─────┼─┐ │ │ │ ┌───┘ ┌───────┐ │
|
|
2759
|
+
11│ O O O │ O─┼─O O O │ O─┼─O │ . . . │ . O─┼─O │
|
|
2760
|
+
├─┼─┬─┼─┐ ├───┘ ┌─┼─┬─┼─┤ └───┤ ┌───────┘ │ │
|
|
2761
|
+
12│ O │ O │ . │ . . │ O │ O │ . . │ . │ . . . . │ . │
|
|
2762
|
+
│ │ │ │ ┌───┘ │ └───┐ └───┘ │ │
|
|
2763
|
+
13│ . │ . │ O─┼─O │ . . │ . . │ . . O . . . │ . │
|
|
2764
|
+
│ │ └───┤ │ │ └─────────┼─┐ └───┤
|
|
2765
|
+
14│ O─┼─O O─┼─O │ . O─┼─O . . . O │ . . . . │
|
|
2766
|
+
└───┴───────┴───┴───────┴───────────────────┴───────────────┘
|
|
2561
2767
|
Solutions found: 1
|
|
2562
2768
|
status: OPTIMAL
|
|
2563
2769
|
Time taken: 0.01 seconds
|
|
@@ -2624,24 +2830,43 @@ solutions = binst.solve_and_print()
|
|
|
2624
2830
|
|
|
2625
2831
|
```python
|
|
2626
2832
|
Solution found
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
|
|
2630
|
-
|
|
2631
|
-
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
|
|
2638
|
-
|
|
2639
|
-
|
|
2640
|
-
|
|
2641
|
-
|
|
2833
|
+
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
|
|
2834
|
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
|
|
2835
|
+
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
|
2836
|
+
0│ │ │ │ │ │▒▒▒│ │ │ │ │ │ │ │ │ │
|
|
2837
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2838
|
+
1│ │ │ │ │ │ │ │ │ │ │▒▒▒│ │▒▒▒│ │ │
|
|
2839
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2840
|
+
2│ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒│ │ │
|
|
2841
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2842
|
+
3│ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒│ │ │
|
|
2843
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2844
|
+
4│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
|
2845
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2846
|
+
5│ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │ │ │ │ │ │▒▒▒│▒▒▒│▒▒▒│ │
|
|
2847
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2848
|
+
6│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
|
2849
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2850
|
+
7│ │ │▒▒▒│ │ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │ │▒▒▒│▒▒▒│▒▒▒│
|
|
2851
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2852
|
+
8│▒▒▒│ │▒▒▒│ │ │ │ │ │ │ │ │ │ │ │ │
|
|
2853
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2854
|
+
9│ │ │ │ │ │ │ │ │▒▒▒│ │ │▒▒▒│ │ │ │
|
|
2855
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2856
|
+
10│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │ │ │ │▒▒▒│ │ │ │ │ │ │
|
|
2857
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2858
|
+
11│ │ │ │ │ │ │ │ │ │ │▒▒▒│ │ │ │ │
|
|
2859
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2860
|
+
12│ │ │ │ │ │ │ │▒▒▒│▒▒▒│ │▒▒▒│ │ │ │ │
|
|
2861
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2862
|
+
13│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
|
2863
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2864
|
+
14│ │ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒│
|
|
2865
|
+
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
|
2642
2866
|
Solutions found: 1
|
|
2643
2867
|
status: OPTIMAL
|
|
2644
|
-
Time taken: 0.
|
|
2868
|
+
Time taken: 0.09 seconds
|
|
2869
|
+
Solution found
|
|
2645
2870
|
```
|
|
2646
2871
|
|
|
2647
2872
|
**Solved puzzle**
|
|
@@ -2689,18 +2914,33 @@ solutions = binst.solve_and_print()
|
|
|
2689
2914
|
|
|
2690
2915
|
```python
|
|
2691
2916
|
Solution found
|
|
2692
|
-
|
|
2693
|
-
|
|
2694
|
-
|
|
2695
|
-
|
|
2696
|
-
|
|
2697
|
-
|
|
2698
|
-
|
|
2699
|
-
|
|
2700
|
-
|
|
2701
|
-
|
|
2702
|
-
|
|
2703
|
-
|
|
2917
|
+
0 0 0 0 0 0 0 0 0 0 1 1
|
|
2918
|
+
0 1 2 3 4 5 6 7 8 9 0 1
|
|
2919
|
+
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
|
2920
|
+
0│▒▒▒│▒▒▒│ │▒▒▒│ │ │ │▒▒▒│ │ │ │▒▒▒│
|
|
2921
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2922
|
+
1│ │ │ │ │ │▒▒▒│ │ │ │ │ │ │
|
|
2923
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2924
|
+
2│▒▒▒│ │ │ │ │ │ │ │ │ │ │ │
|
|
2925
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2926
|
+
3│ │ │ │ │▒▒▒│ │▒▒▒│ │ │ │ │ │
|
|
2927
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2928
|
+
4│ │ │▒▒▒│▒▒▒│ │ │ │▒▒▒│ │▒▒▒│ │▒▒▒│
|
|
2929
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2930
|
+
5│▒▒▒│ │ │ │▒▒▒│ │ │▒▒▒│ │ │▒▒▒│▒▒▒│
|
|
2931
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2932
|
+
6│ │ │ │ │ │ │ │ │ │ │▒▒▒│ │
|
|
2933
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2934
|
+
7│ │ │ │▒▒▒│ │ │ │ │ │ │ │ │
|
|
2935
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2936
|
+
8│ │ │▒▒▒│ │ │▒▒▒│ │ │▒▒▒│ │▒▒▒│ │
|
|
2937
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2938
|
+
9│ │ │ │▒▒▒│ │ │▒▒▒│ │ │ │ │▒▒▒│
|
|
2939
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2940
|
+
10│ │ │▒▒▒│ │ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│
|
|
2941
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
2942
|
+
11│▒▒▒│ │ │▒▒▒│ │ │ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│
|
|
2943
|
+
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
|
2704
2944
|
Solutions found: 1
|
|
2705
2945
|
status: OPTIMAL
|
|
2706
2946
|
Time taken: 0.00 seconds
|
|
@@ -2775,34 +3015,62 @@ solutions = binst.solve_and_print()
|
|
|
2775
3015
|
|
|
2776
3016
|
```python
|
|
2777
3017
|
Solution found
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
|
|
2796
|
-
|
|
2797
|
-
|
|
2798
|
-
|
|
2799
|
-
|
|
2800
|
-
|
|
2801
|
-
|
|
2802
|
-
|
|
3018
|
+
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2
|
|
3019
|
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
|
|
3020
|
+
┌───────────────────┬───────────────────────────────────┬───────────┬───────────────────────────────┐
|
|
3021
|
+
0│ . . . . X │ . X . X . . . . . │ . . . │ X . X . X . . . │
|
|
3022
|
+
│ ┌───┐ ┌───────┘ ┌───────┐ ┌───┘ ├───────────────────────┐ │
|
|
3023
|
+
1│ X │ . │ X │ . . . . . . . │ X . │ X │ . X . . │ . . . . . . │ X . │
|
|
3024
|
+
│ │ └───┘ ┌───┘ └───┴───┐ ┌───┘ ┌───┘ │
|
|
3025
|
+
2│ . │ . . . X . X . X │ . . . . . │ . . │ X . X . X . │ . . . │
|
|
3026
|
+
│ │ ┌───┬───────────────────────┘ │ ┌───┘ │ ┌───┐ │
|
|
3027
|
+
3│ X │ . │ X │ . . . . . . . X . X . │ . │ . . . . . . . │ X │ . │ X │
|
|
3028
|
+
│ │ │ └───────────────────────┐ ┌───┘ └───────────┐ └───┤ │ │
|
|
3029
|
+
4│ . │ . │ . . . X . X . │ . . . . │ . X . X . │ X . X . . │ . │ . │
|
|
3030
|
+
│ └───┼───┐ ┌───────────────┐ │ │ │ ┌───┘ └───┤
|
|
3031
|
+
5│ . X │ . │ X │ . . . . │ . │ X . X . │ . . . . . │ . . . . │ X . X │
|
|
3032
|
+
│ ┌───┘ └───┴───┐ ┌───┘ └───┐ └───┐ ┌───┘ ┌───────┘ │
|
|
3033
|
+
6│ . │ . . . . │ X . │ X . . │ . . . X │ . X . │ . X . │ X . . . . │
|
|
3034
|
+
│ └───┐ │ └───────┐ ├───────────────┤ │ ┌───────┴───────┐ │
|
|
3035
|
+
7│ . X │ . X . │ . . . . │ X │ . X . . │ . . . │ . │ . . . . │ X . X │
|
|
3036
|
+
├───────┘ ┌───┘ └───┤ ┌───┘ ├───┘ └───┐ ┌───┤
|
|
3037
|
+
8│ . . . . │ . X . X . . │ . . . │ X . X . │ X . X . . . │ . │ . │
|
|
3038
|
+
│ │ ┌───┘ │ ┌───┘ │ │ │
|
|
3039
|
+
9│ . X . X │ . . . . . │ X . X . │ . . . │ . . . . . X . │ X │ . │
|
|
3040
|
+
│ ┌───┘ ┌───┘ ├───────────┴───┐ └───┘ │
|
|
3041
|
+
10│ . . . │ . . X . X │ . . . . . │ X . X . │ X . X . . . . . │
|
|
3042
|
+
│ ┌───┘ ┌───┤ └───────────┐ │ ┌───┐ ┌───┐ │
|
|
3043
|
+
11│ X . │ X . . . . │ . │ . X . X . . . . │ . │ . . . . │ X │ . │ X │ . │
|
|
3044
|
+
├───┐ └───────────────────┘ │ ┌───────────┘ └───┐ │ │ │ ├───┤
|
|
3045
|
+
12│ . │ . . . X . X . │ . . . . . │ X . X . X │ . X . │ . │ . │ . │ . │
|
|
3046
|
+
│ └───────────┬───┐ ┌───────┼───┐ └───────────────┐ ├───────────┘ └───┘ │ │
|
|
3047
|
+
13│ X . X . │ . │ . │ . . │ X │ . X . . . . . . │ . │ . . . X . X │ . │
|
|
3048
|
+
│ │ └───┘ │ │ ┌───────┐ ┌───┐ ┌───┘ │ ┌───────────────────┘ │
|
|
3049
|
+
14│ . . . . │ X . X . │ . │ . . │ . X │ . │ X │ . │ X . │ X │ . . . . . . │
|
|
3050
|
+
│ └───┐ ┌───┘ ├───────┘ ┌───┴───┘ │ └───────┤ │ │
|
|
3051
|
+
15│ . X . . . │ . . │ . X │ . X . │ . . . │ . . . │ . │ . X . X . X │
|
|
3052
|
+
│ ┌───────┘ │ ┌───┘ ┌───────┤ ┌───┐ └───────────┤ │ │
|
|
3053
|
+
16│ . . . │ X . X . │ . │ . . │ . . │ X │ . │ X . X . │ X │ . . . . . . │
|
|
3054
|
+
│ ┌───────┘ │ │ │ ┌───┴───┘ └───┐ ┌───┐ ├───┘ ┌───┐ │
|
|
3055
|
+
17│ . │ X . . . . . │ X │ . X │ . │ . . . . │ . │ . │ . │ . . │ X │ . X . X │
|
|
3056
|
+
│ └───────┐ ┌───────┘ │ ┌───┘ │ ┌───┐ │ │ │ │ ┌───┘ │ │
|
|
3057
|
+
18│ . . . │ X . │ X . . │ . │ . . │ X │ . │ X . │ X │ . │ X │ . │ . . │ . . . . │
|
|
3058
|
+
│ │ └───┐ │ └───┐ └───┘ └───┐ └───┘ └───┴───┘ ┌───┘ ┌───────┐ │
|
|
3059
|
+
19│ X . . │ . . . │ . X │ . X │ . . . . │ . . . . . X │ . X │ . X │ . │
|
|
3060
|
+
│ └───┬───┐ │ ┌───┤ ┌───┘ └───┐ ┌───────────┐ │ │ ┌───┘ │
|
|
3061
|
+
20│ . . X . │ X │ . │ . │ . │ . │ . . X . X . │ X │ . X . │ . │ . . │ . │ . . │
|
|
3062
|
+
│ │ ├───┤ │ │ │ ┌───────┴───┘ │ │ ┌───┘ └───┐ │
|
|
3063
|
+
21│ X . . . │ . │ . │ X │ . │ X │ . . . . │ . . . . . . │ X │ . │ X . X │ . │
|
|
3064
|
+
│ ┌───────┐ │ │ └───┘ │ │ │ └───┴───┴───────┐ │ │
|
|
3065
|
+
22│ . │ . X │ . │ X │ . . . │ . │ . X . X │ . X . X . . . . . . │ . │ . │
|
|
3066
|
+
│ │ ┌───┘ │ │ ┌───┐ │ │ │ ┌───────────┘ └───┤
|
|
3067
|
+
23│ . │ . │ . . │ . │ . │ X │ . │ X │ . . . . │ . . . . . X . │ X . X . X │
|
|
3068
|
+
│ │ └───────┘ └───┘ │ └───┘ │ └───────────────────┤
|
|
3069
|
+
24│ . │ X . X . . . │ . . . X . X │ . X . X . . . . . . . . │
|
|
3070
|
+
└───┴───────────────────────┴───────────────────────┴───────────────────────────────────────────────┘
|
|
2803
3071
|
Solutions found: 1
|
|
2804
3072
|
status: OPTIMAL
|
|
2805
|
-
Time taken: 0.
|
|
3073
|
+
Time taken: 0.39 seconds
|
|
2806
3074
|
```
|
|
2807
3075
|
|
|
2808
3076
|
**Solved puzzle**
|
|
@@ -2860,16 +3128,29 @@ solutions = binst.solve_and_print()
|
|
|
2860
3128
|
|
|
2861
3129
|
```python
|
|
2862
3130
|
Solution found
|
|
2863
|
-
|
|
2864
|
-
|
|
2865
|
-
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
3131
|
+
0 0 0 0 0 0 0 0 0 0
|
|
3132
|
+
0 1 2 3 4 5 6 7 8 9
|
|
3133
|
+
┌───────────────────────────────────────┐
|
|
3134
|
+
0│ X . . . X . . . . . │
|
|
3135
|
+
├───┐ │
|
|
3136
|
+
1│ │ . . . . . X . X . │
|
|
3137
|
+
│ │ ┌───┐ │
|
|
3138
|
+
2│ │ . X . X . . . │ │ . │
|
|
3139
|
+
│ └───┐ ┌───┐ └───┘ │
|
|
3140
|
+
3│ │ . . │ │ . . X . X │
|
|
3141
|
+
│ │ │ │ │
|
|
3142
|
+
4│ │ X . │ │ X . . . . │
|
|
3143
|
+
├───────┘ └───┘ │
|
|
3144
|
+
5│ X . . . . . . . X . │
|
|
3145
|
+
│ ┌───┐ ┌───┐ │
|
|
3146
|
+
6│ . . . X │ │ . X . │ │ . │
|
|
3147
|
+
├───┐ └───┘ ┌───┘ │ │
|
|
3148
|
+
7│ │ X . . . . . │ │ X │
|
|
3149
|
+
│ └───┐ ┌───┘ │ │
|
|
3150
|
+
8│ │ . X . X │ │ . │
|
|
3151
|
+
│ ┌───┘ ┌───┐ └───────────┘ │
|
|
3152
|
+
9│ │ X . . │ │ . . X . . │
|
|
3153
|
+
└───┴───────────┴───┴───────────────────┘
|
|
2873
3154
|
Solutions found: 1
|
|
2874
3155
|
status: OPTIMAL
|
|
2875
3156
|
Time taken: 0.02 seconds
|
|
@@ -2940,30 +3221,52 @@ solutions = binst.solve_then_constrain() # solve_then_constrain NOT solve_and_p
|
|
|
2940
3221
|
|
|
2941
3222
|
```python
|
|
2942
3223
|
Solution found
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
|
|
2957
|
-
|
|
2958
|
-
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
|
|
3224
|
+
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
|
|
3225
|
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
|
|
3226
|
+
┌───────────┬───────┬───────────┬───────────┬───────┬───┬───┬───────┬───────┬───┐
|
|
3227
|
+
0│▒▒▒ ▒▒▒ ▒▒▒│ │▒▒▒ ▒▒▒ ▒▒▒│ │ │▒▒▒│ │▒▒▒ │▒▒▒ ▒▒▒│ │
|
|
3228
|
+
│ └───┐ │ ┌───────┘ ┌───┬───┘ ┌───┘ │ │ ┌───┘ ┌───┘ │
|
|
3229
|
+
1│ ▒▒▒ │▒▒▒│▒▒▒│ │▒▒▒│ │▒▒▒ ▒▒▒│ │▒▒▒│▒▒▒ ▒▒▒│ │
|
|
3230
|
+
├───────────┬───┘ │ └───┐ ┌───┘ │ │ ┌───┘ │ └───────┤ ┌───┤
|
|
3231
|
+
2│▒▒▒ ▒▒▒ ▒▒▒│▒▒▒ ▒▒▒│ │▒▒▒│▒▒▒ ▒▒▒│ │▒▒▒│ │▒▒▒ │▒▒▒│ │
|
|
3232
|
+
│ ┌───────┴───┐ │ ┌───┘ └───┐ │ ├───┘ │ ┌───┬───┘ │ │
|
|
3233
|
+
3│▒▒▒│ │▒▒▒│ │▒▒▒ ▒▒▒ │▒▒▒│▒▒▒ │▒▒▒ ▒▒▒ ▒▒▒│▒▒▒│ │▒▒▒ ▒▒▒│ │
|
|
3234
|
+
│ └───────┐ ├───┴───┤ ┌───────┤ │ │ ┌───────┼───┘ │ ┌───┘ │
|
|
3235
|
+
4│ │▒▒▒│▒▒▒ ▒▒▒│▒▒▒│ ▒▒▒│ │▒▒▒ │▒▒▒│ │ │▒▒▒│ │
|
|
3236
|
+
├───┬───────┘ │ │ └───┐ └───┤ ├───┘ │ └───┘ ┌───┤
|
|
3237
|
+
5│▒▒▒│ ▒▒▒ ▒▒▒│ ▒▒▒│ │▒▒▒ ▒▒▒│▒▒▒ │▒▒▒ ▒▒▒ │▒▒▒ ▒▒▒ ▒▒▒ ▒▒▒│ │
|
|
3238
|
+
│ │ ┌───┐ ├───┐ │ │ ┌───┘ ┌───┘ ┌───────┼───┬───────────┤ │
|
|
3239
|
+
6│▒▒▒│ │ │▒▒▒│ │▒▒▒│ │▒▒▒│ ▒▒▒│▒▒▒ ▒▒▒│ │▒▒▒│ │▒▒▒│
|
|
3240
|
+
│ └───┤ └───┤ └───┤ ├───┴───────┼───────┴───┐ │ │ ┌───┘ │
|
|
3241
|
+
7│▒▒▒ ▒▒▒│ ▒▒▒│ ▒▒▒│ │▒▒▒ ▒▒▒ │▒▒▒ │ │▒▒▒│ ▒▒▒│ ▒▒▒│
|
|
3242
|
+
│ ┌───┤ │ └───┬───┘ ┌───────┤ ┌───┘ │ └───┐ └───┐ │
|
|
3243
|
+
8│ │▒▒▒│ ▒▒▒│ ▒▒▒ ▒▒▒│▒▒▒ ▒▒▒│ │▒▒▒ │▒▒▒ ▒▒▒│▒▒▒ ▒▒▒│▒▒▒ ▒▒▒│▒▒▒│
|
|
3244
|
+
├───┘ └───┐ └───┐ └───────┘ ┌───┘ ┌───┘ └───────┤ ┌───┤ │
|
|
3245
|
+
9│▒▒▒ ▒▒▒ ▒▒▒│▒▒▒ ▒▒▒│▒▒▒ │▒▒▒ ▒▒▒│▒▒▒ ▒▒▒ │▒▒▒│ │▒▒▒│
|
|
3246
|
+
├───────────┼───────┴───────┐ ┌───┴───┐ ├───┬───────────┐ ├───┘ └───┤
|
|
3247
|
+
10│ │ ▒▒▒ ▒▒▒│ │ ▒▒▒│ │ │▒▒▒ ▒▒▒ ▒▒▒│ │ │
|
|
3248
|
+
│ ┌───┐ └───────────┐ ├───────┼───┐ └───┤ └───────┐ └───┼───────┐ │
|
|
3249
|
+
11│ │▒▒▒│ ▒▒▒ ▒▒▒ │▒▒▒│ │▒▒▒│▒▒▒ ▒▒▒│ ▒▒▒ │▒▒▒ │▒▒▒ ▒▒▒│ │
|
|
3250
|
+
│ │ └───┐ ┌───┘ │ │ └───┐ │ │ ┌───┘ ┌───┘ │
|
|
3251
|
+
12│ │▒▒▒ ▒▒▒│ ▒▒▒│ ▒▒▒│ │▒▒▒ │▒▒▒│▒▒▒ ▒▒▒ ▒▒▒│ │▒▒▒ ▒▒▒│ │
|
|
3252
|
+
│ │ ┌───┴───┐ │ ┌───┘ ┌───┘ ┌───┴───┼───────┬───┴───┴───────┤ ┌───┤
|
|
3253
|
+
13│ │▒▒▒│ │▒▒▒│ │▒▒▒ │▒▒▒ ▒▒▒│▒▒▒ │▒▒▒ │▒▒▒ ▒▒▒ ▒▒▒ │ │▒▒▒│
|
|
3254
|
+
│ ├───┘ ├───┼───┘ ├───┬───┘ │ ├───────┐ │ │ │
|
|
3255
|
+
14│ │▒▒▒ ▒▒▒ │▒▒▒│ ▒▒▒ │▒▒▒│ ▒▒▒ │▒▒▒ ▒▒▒│ │▒▒▒ │ │▒▒▒│
|
|
3256
|
+
├───┘ ┌───────┘ │ ┌───┘ └───┐ ┌───┘ │ ├───────┘ │ │
|
|
3257
|
+
15│▒▒▒ ▒▒▒│ ▒▒▒ ▒▒▒│ ▒▒▒│▒▒▒ ▒▒▒ ▒▒▒│▒▒▒│ ▒▒▒│ │▒▒▒ ▒▒▒ │▒▒▒│
|
|
3258
|
+
├───────┴───┐ ┌───┤ └───────┬───┘ ├───────────┤ └───┐ │ │
|
|
3259
|
+
16│ ▒▒▒ ▒▒▒│▒▒▒│ │ ▒▒▒ │ ▒▒▒│▒▒▒ ▒▒▒ ▒▒▒│▒▒▒ │▒▒▒ ▒▒▒│▒▒▒│
|
|
3260
|
+
├───┐ ├───┘ └───────┐ ┌───┴───────┤ ┌───────┘ ┌───┐ ├───┐ └───┤
|
|
3261
|
+
17│▒▒▒│ ▒▒▒│ ▒▒▒ ▒▒▒ ▒▒▒│ │▒▒▒ ▒▒▒ │▒▒▒│ ▒▒▒│ │ │▒▒▒│ │
|
|
3262
|
+
│ └───┐ │ ┌───┐ ├───┴───┐ ├───┤ ┌───┐ │ ├───┘ └───┐ │
|
|
3263
|
+
18│▒▒▒ ▒▒▒│▒▒▒│ ▒▒▒│ │ │▒▒▒ │▒▒▒ │▒▒▒│ │ │▒▒▒│ │▒▒▒ ▒▒▒ ▒▒▒│ │
|
|
3264
|
+
│ ┌───┴───┴───────┘ ├───┘ │ ┌───┘ └───┘ │ │ └───────────┘ │
|
|
3265
|
+
19│▒▒▒│ ▒▒▒ ▒▒▒ ▒▒▒ ▒▒▒│▒▒▒ ▒▒▒ ▒▒▒│▒▒▒│▒▒▒ ▒▒▒ ▒▒▒ │▒▒▒│ │
|
|
3266
|
+
└───┴───────────────────┴───────────┴───┴───────────────┴───┴───────────────────┘
|
|
2965
3267
|
Solutions found: 1
|
|
2966
|
-
|
|
3268
|
+
status: OPTIMAL
|
|
3269
|
+
Time taken: 0.09 seconds
|
|
2967
3270
|
```
|
|
2968
3271
|
|
|
2969
3272
|
**Solved puzzle**
|
|
@@ -3052,26 +3355,48 @@ As the instructions say, the solution to this puzzle is not garunteed to be uniq
|
|
|
3052
3355
|
|
|
3053
3356
|
```python
|
|
3054
3357
|
Solution found
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
|
-
|
|
3062
|
-
|
|
3358
|
+
|
|
3359
|
+
0 1 2 3 4 5 6 7
|
|
3360
|
+
┌───┬───┬───┬───┬───┬───┬───┬───┐
|
|
3361
|
+
0│ │ │ │ │ O │ │ │ │
|
|
3362
|
+
├───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3363
|
+
1│ │ │ │ │ │ O │ │ │
|
|
3364
|
+
├───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3365
|
+
2│ │ O │ │ │ │ │ │ │
|
|
3366
|
+
├───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3367
|
+
3│ │ │ │ │ │ │ │ │
|
|
3368
|
+
├───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3369
|
+
4│ │ │ │ │ │ │ │ │
|
|
3370
|
+
├───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3371
|
+
5│ │ │ │ │ │ │ │ │
|
|
3372
|
+
├───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3373
|
+
6│ │ │ │ │ │ │ │ │
|
|
3374
|
+
├───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3375
|
+
7│ │ │ O │ │ O │ │ │ │
|
|
3376
|
+
└───┴───┴───┴───┴───┴───┴───┴───┘
|
|
3063
3377
|
Solution found
|
|
3064
|
-
|
|
3065
|
-
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
|
|
3071
|
-
|
|
3378
|
+
|
|
3379
|
+
0 1 2 3 4 5 6 7
|
|
3380
|
+
┌───┬───┬───┬───┬───┬───┬───┬───┐
|
|
3381
|
+
0│ │ │ │ │ O │ │ │ │
|
|
3382
|
+
├───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3383
|
+
1│ │ │ │ │ │ O │ │ │
|
|
3384
|
+
├───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3385
|
+
2│ │ O │ │ O │ │ │ │ │
|
|
3386
|
+
├───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3387
|
+
3│ │ │ │ │ │ │ │ │
|
|
3388
|
+
├───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3389
|
+
4│ │ │ │ │ │ │ │ │
|
|
3390
|
+
├───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3391
|
+
5│ │ │ │ │ │ │ │ │
|
|
3392
|
+
├───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3393
|
+
6│ │ │ │ │ │ │ │ │
|
|
3394
|
+
├───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3395
|
+
7│ │ │ O │ │ O │ │ │ │
|
|
3396
|
+
└───┴───┴───┴───┴───┴───┴───┴───┘
|
|
3072
3397
|
Solutions found: 2
|
|
3073
3398
|
status: OPTIMAL
|
|
3074
|
-
Time taken:
|
|
3399
|
+
Time taken: 24.53 seconds
|
|
3075
3400
|
```
|
|
3076
3401
|
|
|
3077
3402
|
**Solved puzzle**
|
|
@@ -3134,26 +3459,42 @@ As the instructions say, the solution to this puzzle is not garunteed to be uniq
|
|
|
3134
3459
|
|
|
3135
3460
|
```python
|
|
3136
3461
|
Solution found
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3153
|
-
|
|
3462
|
+
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
|
|
3463
|
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
|
|
3464
|
+
┌───────────────────┬───────┬───────┬───────┬───────────────┐
|
|
3465
|
+
0│ . │ . . │ . . │ . . │ . . │
|
|
3466
|
+
├───────┬───┬───────┤ │ ├───────┼───────────┬───┤
|
|
3467
|
+
1│ . . │ │ . │ . . │ . . │ │ . │ │
|
|
3468
|
+
├───┬───┘ └───┐ └───┬───┴───┬───┘ └───────┬───┘ │
|
|
3469
|
+
2│ . │ │ . │ . . │ . │ │
|
|
3470
|
+
├───┤ └───────┼───────┼───┬───┐ ┌───┤ │
|
|
3471
|
+
3│ │ │ . . │ . │ │ │ │ . . │
|
|
3472
|
+
│ │ │ ├───┘ └───────┤ │ │
|
|
3473
|
+
4│ . │ . │ . . │ │ . │ │
|
|
3474
|
+
│ ├───────┐ └───────┤ │ │ ┌───┤
|
|
3475
|
+
5│ │ . │ . │ │ . │ │ . │
|
|
3476
|
+
├───┘ ┌───┤ │ ┌───┤ ├───┤ │
|
|
3477
|
+
6│ . │ . │ │ . │ │ │ . │ . │
|
|
3478
|
+
├───┬───┼───┴───┬───┐ │ │ └───┤ ├───┤
|
|
3479
|
+
7│ │ . │ │ . │ │ . │ . . │ . │ . │
|
|
3480
|
+
│ ├───┘ ┌───┴───┼───┐ ┌───┘ ├───┐ ├───┴───┤
|
|
3481
|
+
8│ . │ . . │ . . │ . │ │ │ │ │ . . │
|
|
3482
|
+
│ │ │ ├───┴───┤ │ ├───┤ │
|
|
3483
|
+
9│ │ . . │ . . │ . . │ │ . │ │ . . │
|
|
3484
|
+
├───┘ ┌───┴───────┤ ├───────┐ ┌───┤ │ └───────┤
|
|
3485
|
+
10│ │ . . │ . . │ . │ │ . │ │ │
|
|
3486
|
+
├───┬───┴───┐ └───┬───┘ ┌───┴───┴───┴───┤ │
|
|
3487
|
+
11│ . │ │ . . │ . │ │ . │
|
|
3488
|
+
├───┴───┐ └───┬───┬───┼───┬───┴───┐ ┌───┤ │
|
|
3489
|
+
12│ │ . . │ │ . │ │ . . │ . . │ . │ . │
|
|
3490
|
+
├───┐ │ │ └───┤ │ │ │ │ │
|
|
3491
|
+
13│ . │ . │ . . │ . . │ . │ . . │ . . │ . │ │
|
|
3492
|
+
│ │ └───┐ └───┐ │ ├───┬───┘ └───┼───────┐ │
|
|
3493
|
+
14│ . │ │ │ │ │ . │ │ . . │ │
|
|
3494
|
+
└───┴───────┴───────┴───┴───┴───┴───────────────┴───────┴───┘
|
|
3154
3495
|
Solutions found: 1
|
|
3155
3496
|
status: OPTIMAL
|
|
3156
|
-
Time taken: 0.
|
|
3497
|
+
Time taken: 0.06 seconds
|
|
3157
3498
|
```
|
|
3158
3499
|
|
|
3159
3500
|
**Solved puzzle**
|
|
@@ -3213,18 +3554,29 @@ solutions = binst.solve_and_print()
|
|
|
3213
3554
|
|
|
3214
3555
|
```python
|
|
3215
3556
|
Solution found
|
|
3216
|
-
|
|
3217
|
-
|
|
3218
|
-
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
|
|
3222
|
-
|
|
3223
|
-
|
|
3224
|
-
|
|
3225
|
-
|
|
3226
|
-
|
|
3227
|
-
|
|
3557
|
+
0 0 0 0 0 0 0 0 0 0 1 1
|
|
3558
|
+
0 1 2 3 4 5 6 7 8 9 0 1
|
|
3559
|
+
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
|
3560
|
+
0│ / │ \ │ \ │ / │ / │ / │ / │ \ │ \ │ \ │ / │ \ │
|
|
3561
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3562
|
+
1│ \ │ \ │ \ │ \ │ \ │ \ │ / │ \ │ / │ / │ \ │ \ │
|
|
3563
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3564
|
+
2│ \ │ \ │ \ │ / │ / │ \ │ / │ \ │ \ │ \ │ \ │ / │
|
|
3565
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3566
|
+
3│ \ │ / │ \ │ \ │ / │ \ │ / │ / │ \ │ / │ \ │ / │
|
|
3567
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3568
|
+
4│ / │ \ │ \ │ / │ \ │ \ │ \ │ / │ / │ / │ \ │ \ │
|
|
3569
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3570
|
+
5│ / │ \ │ \ │ / │ \ │ \ │ \ │ / │ \ │ / │ \ │ \ │
|
|
3571
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3572
|
+
6│ / │ \ │ \ │ / │ \ │ / │ / │ / │ \ │ / │ / │ \ │
|
|
3573
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3574
|
+
7│ \ │ \ │ \ │ \ │ \ │ / │ / │ / │ \ │ / │ \ │ \ │
|
|
3575
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3576
|
+
8│ / │ / │ / │ \ │ \ │ / │ / │ \ │ \ │ / │ \ │ \ │
|
|
3577
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3578
|
+
9│ \ │ \ │ / │ / │ / │ \ │ / │ \ │ / │ \ │ \ │ / │
|
|
3579
|
+
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
|
3228
3580
|
Solutions found: 1
|
|
3229
3581
|
status: OPTIMAL
|
|
3230
3582
|
Time taken: 0.06 seconds
|
|
@@ -3242,7 +3594,11 @@ Applying the solution to the puzzle visually:
|
|
|
3242
3594
|
|
|
3243
3595
|
Also called "Futoshiki" or Renzoku"
|
|
3244
3596
|
|
|
3245
|
-
* [**Play online**](https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/unequal.html)
|
|
3597
|
+
* [**Play online 1**](https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/unequal.html)
|
|
3598
|
+
|
|
3599
|
+
* [**Play online 2**](https://www.puzzle-futoshiki.com/futoshiki-4x4-easy/) (Futoshiki variant)
|
|
3600
|
+
|
|
3601
|
+
* [**Play online 3**](https://www.puzzle-futoshiki.com/renzoku-4x4-easy/) (Renzoku variant)
|
|
3246
3602
|
|
|
3247
3603
|
* [**Instructions**](https://www.chiark.greenend.org.uk/~sgtatham/puzzles/doc/unequal.html#unequal)
|
|
3248
3604
|
|
|
@@ -3387,31 +3743,52 @@ solutions = binst.solve_and_print()
|
|
|
3387
3743
|
|
|
3388
3744
|
```python
|
|
3389
3745
|
Solution found
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
|
|
3393
|
-
|
|
3394
|
-
|
|
3395
|
-
|
|
3396
|
-
|
|
3397
|
-
|
|
3398
|
-
|
|
3399
|
-
|
|
3400
|
-
|
|
3401
|
-
|
|
3402
|
-
|
|
3403
|
-
|
|
3404
|
-
|
|
3405
|
-
|
|
3406
|
-
|
|
3407
|
-
|
|
3408
|
-
|
|
3409
|
-
|
|
3410
|
-
|
|
3411
|
-
|
|
3746
|
+
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
|
|
3747
|
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
|
|
3748
|
+
┌───┬───────────────┬───┬───────┬───────────┬───────────┬───┬───┬───────┬───────┐
|
|
3749
|
+
0│▒▒▒│ │▒▒▒│ ▒▒▒│ ▒▒▒ │▒▒▒ │▒▒▒│ │▒▒▒ │▒▒▒ ▒▒▒│
|
|
3750
|
+
│ └───┐ │ │ ┌───┘ ┌───┬───┴───┐ ┌───┘ │ │ ├───────┤
|
|
3751
|
+
1│▒▒▒ │▒▒▒ │▒▒▒│ │▒▒▒ │▒▒▒│ ▒▒▒│ │ ▒▒▒│ │▒▒▒ │ │
|
|
3752
|
+
├───────┴───┐ ├───┘ ├───────┘ │ ┌───┤ ├───┬───┘ └───┬───┘ │
|
|
3753
|
+
2│ ▒▒▒│ ▒▒▒│ ▒▒▒│ ▒▒▒ │▒▒▒│ │▒▒▒│▒▒▒│ │▒▒▒ │
|
|
3754
|
+
│ ┌───┐ ├───────┴───┬───┴───────┬───┴───┤ └───┘ │ └───────┐ │
|
|
3755
|
+
3│▒▒▒│▒▒▒│ │ ▒▒▒ │▒▒▒ ▒▒▒│ ▒▒▒│ │ ▒▒▒ │▒▒▒│
|
|
3756
|
+
│ │ └───┤ ┌───────┤ │ └───┐ ┌───┤ ┌───────────┴───┤
|
|
3757
|
+
4│ │ ▒▒▒│▒▒▒│ │ │ ▒▒▒│▒▒▒│ │ ▒▒▒│▒▒▒ ▒▒▒│
|
|
3758
|
+
│ ├───────┴───┘ │ ┌───────┴───────┐ │ │ └───┐ │ ┌───────┐ │
|
|
3759
|
+
5│ │▒▒▒ ▒▒▒ │ │▒▒▒ ▒▒▒ │ │ │▒▒▒ ▒▒▒│ │ │▒▒▒ ▒▒▒│ │
|
|
3760
|
+
├───┴───┬───────────────┼───┼───────────┬───┴───┼───┘ ┌───┴───┼───┴───┬───┴───┤
|
|
3761
|
+
6│ ▒▒▒│ ▒▒▒ │▒▒▒│ ▒▒▒│ ▒▒▒│ │ ▒▒▒│▒▒▒ │ ▒▒▒│
|
|
3762
|
+
│ │ ┌───┬───────┤ │ ┌───┤ ┌───┴───┬───┴───┐ ├───┐ │ │
|
|
3763
|
+
7│▒▒▒ │▒▒▒│▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒ │▒▒▒ ▒▒▒│ │ │▒▒▒│ ▒▒▒│
|
|
3764
|
+
├───┬───┴───┘ │ ┌───┴───┘ │ │ └───┐ └───┬───┘ │ └───┤ ┌───┤
|
|
3765
|
+
8│▒▒▒│ │▒▒▒│ ▒▒▒│ │ │ │ ▒▒▒│ ▒▒▒│ │ │
|
|
3766
|
+
│ └───┐ ┌───┤ ├───┬───────────┘ │ ┌───┘ ├───┬───┘ └───┘ │
|
|
3767
|
+
9│ ▒▒▒│▒▒▒│ │▒▒▒│ │ ▒▒▒ │▒▒▒│▒▒▒ │ │▒▒▒ │
|
|
3768
|
+
├───┐ ├───┘ ├───┘ ├───────┐ ┌───┤ │ ┌───────┤ └───────────┬───────┤
|
|
3769
|
+
10│▒▒▒│ │ │ │▒▒▒ ▒▒▒│ │▒▒▒│ │ │▒▒▒ ▒▒▒│ ▒▒▒│▒▒▒ │
|
|
3770
|
+
│ └───┤ ┌───┴───┐ └───┬───┴───┘ ├───┴───┴───────┴───┐ ┌───────┴───┐ │
|
|
3771
|
+
11│▒▒▒ │ │▒▒▒ ▒▒▒│ │ ▒▒▒│ ▒▒▒│ │▒▒▒ │ │
|
|
3772
|
+
├───────┤ └───┬───┘ └───┬───────┴───┬───┐ ┌───┤ ├───────┐ │ │
|
|
3773
|
+
12│ ▒▒▒│▒▒▒ │ ▒▒▒│▒▒▒ │▒▒▒│ │▒▒▒│ │▒▒▒ │▒▒▒│▒▒▒│
|
|
3774
|
+
│ ┌───┘ ┌───┴───┐ ├───┐ │ ├───┐ │ │ └───┐ │ │ │
|
|
3775
|
+
13│▒▒▒│ │▒▒▒ ▒▒▒│ ▒▒▒ │ │▒▒▒ │▒▒▒│ │▒▒▒│ │▒▒▒ │▒▒▒│ │ │
|
|
3776
|
+
├───┘ ├───┬───┴───────────┘ └───┬───┴───┘ └───┘ ├───────┴───┼───┴───┤
|
|
3777
|
+
14│▒▒▒ │ │ ▒▒▒ ▒▒▒│ ▒▒▒ │▒▒▒ ▒▒▒│ │
|
|
3778
|
+
├───┐ │ └───┬───────────┬───┐ └───┬───────────────┴───┬───────┘ │
|
|
3779
|
+
15│ │ │▒▒▒ ▒▒▒│ ▒▒▒│▒▒▒│ │▒▒▒ ▒▒▒ │▒▒▒ ▒▒▒│
|
|
3780
|
+
│ ├───┬───┴───┬───┘ ┌───────┤ └───────┼───┐ ┌───┬───┴───────────────┤
|
|
3781
|
+
16│ │▒▒▒│ │ ▒▒▒│▒▒▒ │ ▒▒▒ │▒▒▒│ │▒▒▒│ ▒▒▒ ▒▒▒│
|
|
3782
|
+
│ │ │ └───────┤ ┌───┴───────────┤ └───┬───┤ │ ┌───┬───────┐ │
|
|
3783
|
+
17│ │▒▒▒│ ▒▒▒ ▒▒▒ │ │▒▒▒ ▒▒▒ │ ▒▒▒│▒▒▒│ │ │ │▒▒▒ ▒▒▒│ │
|
|
3784
|
+
│ └───┴───┐ ┌───────┘ └───┬───┬───────┴───┐ │ │ └───┤ │ └───┤
|
|
3785
|
+
18│▒▒▒ ▒▒▒│ │ ▒▒▒│ │ ▒▒▒ ▒▒▒│ │ │▒▒▒ │▒▒▒│ │
|
|
3786
|
+
├───────────┴───┴───┬───────┬───┘ └───────┬───┘ │ └───────┤ │ ┌───────┤
|
|
3787
|
+
19│▒▒▒ ▒▒▒ │▒▒▒ ▒▒▒│ ▒▒▒ ▒▒▒ │ │ ▒▒▒ │▒▒▒│ │▒▒▒ ▒▒▒│
|
|
3788
|
+
└───────────────────┴───────┴───────────────┴───────┴───────────┴───┴───┴───────┘
|
|
3412
3789
|
Solutions found: 1
|
|
3413
3790
|
status: OPTIMAL
|
|
3414
|
-
Time taken: 0.
|
|
3791
|
+
Time taken: 0.03 seconds
|
|
3415
3792
|
```
|
|
3416
3793
|
|
|
3417
3794
|
**Solved puzzle**
|
|
@@ -3424,7 +3801,7 @@ Applying the solution to the puzzle visually:
|
|
|
3424
3801
|
|
|
3425
3802
|
## Slitherlink (Puzzle Type #39)
|
|
3426
3803
|
|
|
3427
|
-
Also known as Fences, Loop the Loop, and Loopy
|
|
3804
|
+
Also known as Fences, Loop the Loop, and Loopy.
|
|
3428
3805
|
|
|
3429
3806
|
* [**Play online 1**](https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/loopy.html)
|
|
3430
3807
|
|
|
@@ -3592,31 +3969,52 @@ solutions = binst.solve_and_print()
|
|
|
3592
3969
|
|
|
3593
3970
|
```python
|
|
3594
3971
|
Solution found
|
|
3595
|
-
|
|
3596
|
-
|
|
3597
|
-
|
|
3598
|
-
|
|
3599
|
-
|
|
3600
|
-
|
|
3601
|
-
|
|
3602
|
-
|
|
3603
|
-
|
|
3604
|
-
|
|
3605
|
-
|
|
3606
|
-
|
|
3607
|
-
|
|
3608
|
-
|
|
3609
|
-
|
|
3610
|
-
|
|
3611
|
-
|
|
3612
|
-
|
|
3613
|
-
|
|
3614
|
-
|
|
3615
|
-
|
|
3616
|
-
|
|
3972
|
+
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
|
|
3973
|
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
|
|
3974
|
+
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
|
3975
|
+
0│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
|
3976
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3977
|
+
1│ │▒▒▒│▒▒▒│ │▒▒▒│ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │▒▒▒│ │▒▒▒│▒▒▒│ │▒▒▒│ │
|
|
3978
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3979
|
+
2│ │ │▒▒▒│ │▒▒▒│ │ │ │ │ │▒▒▒│ │ │▒▒▒│ │ │▒▒▒│ │▒▒▒│ │
|
|
3980
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3981
|
+
3│ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │▒▒▒│ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │▒▒▒│▒▒▒│ │▒▒▒│ │
|
|
3982
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3983
|
+
4│ │ │ │▒▒▒│ │ │▒▒▒│ │ │ │ │ │▒▒▒│ │ │ │▒▒▒│ │▒▒▒│ │
|
|
3984
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3985
|
+
5│ │▒▒▒│ │▒▒▒│ │▒▒▒│▒▒▒│▒▒▒│ │▒▒▒│▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │
|
|
3986
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3987
|
+
6│ │▒▒▒│▒▒▒│▒▒▒│ │ │ │▒▒▒│ │ │▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │
|
|
3988
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3989
|
+
7│ │ │▒▒▒│ │ │▒▒▒│ │▒▒▒│▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │
|
|
3990
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3991
|
+
8│ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │ │▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │
|
|
3992
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3993
|
+
9│ │ │ │ │ │▒▒▒│ │▒▒▒│▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │
|
|
3994
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3995
|
+
10│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │ │▒▒▒│▒▒▒│▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │
|
|
3996
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3997
|
+
11│ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│▒▒▒│▒▒▒│ │
|
|
3998
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
3999
|
+
12│ │ │ │ │ │▒▒▒│ │ │ │ │▒▒▒│ │▒▒▒│ │▒▒▒│ │ │ │▒▒▒│ │
|
|
4000
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
4001
|
+
13│ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │▒▒▒│ │▒▒▒│ │▒▒▒│ │
|
|
4002
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
4003
|
+
14│ │ │ │▒▒▒│ │▒▒▒│ │ │ │ │ │ │▒▒▒│▒▒▒│▒▒▒│ │▒▒▒│ │▒▒▒│ │
|
|
4004
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
4005
|
+
15│ │▒▒▒│▒▒▒│▒▒▒│ │▒▒▒│ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │▒▒▒│▒▒▒│▒▒▒│ │▒▒▒│ │
|
|
4006
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
4007
|
+
16│ │ │▒▒▒│ │ │ │ │ │ │ │ │ │ │ │ │ │▒▒▒│ │▒▒▒│ │
|
|
4008
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
4009
|
+
17│ │▒▒▒│▒▒▒│ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │▒▒▒│ │▒▒▒│ │
|
|
4010
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
4011
|
+
18│ │ │ │ │ │ │ │▒▒▒│ │ │ │ │ │ │▒▒▒│ │▒▒▒│ │▒▒▒│ │
|
|
4012
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
4013
|
+
19│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│▒▒▒│ │
|
|
4014
|
+
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
|
3617
4015
|
Solutions found: 1
|
|
3618
4016
|
status: OPTIMAL
|
|
3619
|
-
Time taken: 3.
|
|
4017
|
+
Time taken: 3.09 seconds
|
|
3620
4018
|
```
|
|
3621
4019
|
|
|
3622
4020
|
**Solved puzzle**
|
|
@@ -3741,7 +4139,7 @@ Applying the solution to the puzzle visually:
|
|
|
3741
4139
|
|
|
3742
4140
|
## Rectangles (Puzzle Type #42)
|
|
3743
4141
|
|
|
3744
|
-
Also
|
|
4142
|
+
Also known as Shikaku.
|
|
3745
4143
|
|
|
3746
4144
|
* [**Play online**](https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/rect.html)
|
|
3747
4145
|
|
|
@@ -4238,7 +4636,7 @@ Time taken: 38.04 seconds
|
|
|
4238
4636
|
|
|
4239
4637
|
## Shingoki (Puzzle Type #47)
|
|
4240
4638
|
|
|
4241
|
-
Also
|
|
4639
|
+
Also known as Semaphores.
|
|
4242
4640
|
|
|
4243
4641
|
* [**Play online**](https://www.puzzle-shingoki.com/)
|
|
4244
4642
|
|
|
@@ -4597,7 +4995,7 @@ Time taken: 0.00 seconds
|
|
|
4597
4995
|
|
|
4598
4996
|
## Shakashaka (Puzzle Type #50)
|
|
4599
4997
|
|
|
4600
|
-
Also
|
|
4998
|
+
Also known as Proof of Quilt.
|
|
4601
4999
|
|
|
4602
5000
|
* [**Play online**](https://www.puzzle-shakashaka.com/)
|
|
4603
5001
|
|
|
@@ -4909,15 +5307,27 @@ solutions = binst.solve_and_print()
|
|
|
4909
5307
|
|
|
4910
5308
|
```python
|
|
4911
5309
|
Solution found
|
|
4912
|
-
|
|
4913
|
-
|
|
4914
|
-
|
|
4915
|
-
|
|
4916
|
-
|
|
4917
|
-
|
|
4918
|
-
|
|
4919
|
-
|
|
4920
|
-
|
|
5310
|
+
|
|
5311
|
+
0 1 2 3 4 5 6 7 8
|
|
5312
|
+
┌───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
|
5313
|
+
0│ 1 │ 9 │ 4 │ 2 │ 3 │ 6 │ 8 │ 5 │ 7 │
|
|
5314
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5315
|
+
1│ 2 │ 8 │ 5 │ 9 │ 4 │ 7 │ 1 │ 6 │ 3 │
|
|
5316
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5317
|
+
2│ 6 │ 3 │ 8 │ 4 │ 7 │ 5 │ 9 │ 1 │ 2 │
|
|
5318
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5319
|
+
3│ 7 │ 6 │ 3 │ 5 │ 9 │ 1 │ 2 │ 8 │ 4 │
|
|
5320
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5321
|
+
4│ 4 │ 5 │ 2 │ 1 │ 6 │ 3 │ 7 │ 9 │ 8 │
|
|
5322
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5323
|
+
5│ 5 │ 7 │ 9 │ 8 │ 1 │ 4 │ 3 │ 2 │ 6 │
|
|
5324
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5325
|
+
6│ 3 │ 1 │ 7 │ 6 │ 8 │ 2 │ 5 │ 4 │ 9 │
|
|
5326
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5327
|
+
7│ 9 │ 4 │ 1 │ 7 │ 2 │ 8 │ 6 │ 3 │ 5 │
|
|
5328
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5329
|
+
8│ 8 │ 2 │ 6 │ 3 │ 5 │ 9 │ 4 │ 7 │ 1 │
|
|
5330
|
+
└───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
|
4921
5331
|
Solutions found: 1
|
|
4922
5332
|
status: OPTIMAL
|
|
4923
5333
|
Time taken: 0.01 seconds
|
|
@@ -4981,18 +5391,30 @@ solutions = binst.solve_and_print()
|
|
|
4981
5391
|
|
|
4982
5392
|
```python
|
|
4983
5393
|
Solution found
|
|
4984
|
-
|
|
4985
|
-
|
|
4986
|
-
|
|
4987
|
-
|
|
4988
|
-
|
|
4989
|
-
|
|
4990
|
-
|
|
4991
|
-
|
|
4992
|
-
|
|
5394
|
+
|
|
5395
|
+
0 1 2 3 4 5 6 7 8
|
|
5396
|
+
┌───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
|
5397
|
+
0│ 5 │ 4 │ 8 │ 7 │ 9 │ 1 │ 6 │ 2 │ 3 │
|
|
5398
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5399
|
+
1│ 3 │ 7 │ 1 │ 6 │ 2 │ 8 │ 4 │ 9 │ 5 │
|
|
5400
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5401
|
+
2│ 2 │ 6 │ 9 │ 5 │ 4 │ 3 │ 1 │ 7 │ 8 │
|
|
5402
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5403
|
+
3│ 1 │ 9 │ 4 │ 3 │ 6 │ 2 │ 5 │ 8 │ 7 │
|
|
5404
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5405
|
+
4│ 8 │ 3 │ 7 │ 1 │ 5 │ 9 │ 2 │ 4 │ 6 │
|
|
5406
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5407
|
+
5│ 6 │ 2 │ 5 │ 8 │ 7 │ 4 │ 3 │ 1 │ 9 │
|
|
5408
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5409
|
+
6│ 4 │ 8 │ 2 │ 9 │ 3 │ 5 │ 7 │ 6 │ 1 │
|
|
5410
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5411
|
+
7│ 7 │ 1 │ 3 │ 2 │ 8 │ 6 │ 9 │ 5 │ 4 │
|
|
5412
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5413
|
+
8│ 9 │ 5 │ 6 │ 4 │ 1 │ 7 │ 8 │ 3 │ 2 │
|
|
5414
|
+
└───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
|
4993
5415
|
Solutions found: 1
|
|
4994
5416
|
status: OPTIMAL
|
|
4995
|
-
Time taken: 0.
|
|
5417
|
+
Time taken: 0.02 seconds
|
|
4996
5418
|
```
|
|
4997
5419
|
|
|
4998
5420
|
**Solved puzzle**
|
|
@@ -5082,7 +5504,7 @@ Note that the solved solution on the bottom left says that only 18 moves were us
|
|
|
5082
5504
|
|
|
5083
5505
|
## Pipes (Puzzle Type #55)
|
|
5084
5506
|
|
|
5085
|
-
Also
|
|
5507
|
+
Also known as Net.
|
|
5086
5508
|
|
|
5087
5509
|
* [**Play online 1**](https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/net.html)
|
|
5088
5510
|
|
|
@@ -5132,16 +5554,29 @@ solutions = binst.solve_and_print()
|
|
|
5132
5554
|
|
|
5133
5555
|
```python
|
|
5134
5556
|
Solution found
|
|
5135
|
-
|
|
5136
|
-
|
|
5137
|
-
|
|
5138
|
-
|
|
5139
|
-
|
|
5140
|
-
|
|
5141
|
-
|
|
5142
|
-
|
|
5143
|
-
|
|
5144
|
-
|
|
5557
|
+
0 0 0 0 0 0 0 0 0 0
|
|
5558
|
+
0 1 2 3 4 5 6 7 8 9
|
|
5559
|
+
|
|
5560
|
+
0 O───┬───┬───┬───O O───┐ ┌───────O
|
|
5561
|
+
│ │ │ │ │
|
|
5562
|
+
1 O O O ├───────O │ ├───────O
|
|
5563
|
+
│ │ │ │
|
|
5564
|
+
2 │ O O───┴───┐ O───┤ │ O O
|
|
5565
|
+
│ │ │ │ │ │ │
|
|
5566
|
+
3 │ │ O───┬───┴───┬───┘ ├───┴───┘
|
|
5567
|
+
│ │ │ │ │
|
|
5568
|
+
4 ├───┴───────┴───O ├───────┘ O───┐
|
|
5569
|
+
│ │ │
|
|
5570
|
+
5 O O───┬───────┬───┘ O O ┌───┘
|
|
5571
|
+
│ │ │ │ │
|
|
5572
|
+
6 O O───┤ O O O ├───┴───┴───┐
|
|
5573
|
+
│ │ │ │ │ │
|
|
5574
|
+
7 ├───────┴───┤ ┌───┴───┴───────┐ O
|
|
5575
|
+
│ │ │ │
|
|
5576
|
+
8 O O───┬───┴───┴───┬───O ┌───┴───┐
|
|
5577
|
+
│ │ │ │
|
|
5578
|
+
9 O───────┴───────O O O───┴───O O
|
|
5579
|
+
|
|
5145
5580
|
Solutions found: 1
|
|
5146
5581
|
status: OPTIMAL
|
|
5147
5582
|
Time taken: 5.65 seconds
|
|
@@ -5153,6 +5588,206 @@ Time taken: 5.65 seconds
|
|
|
5153
5588
|
|
|
5154
5589
|
---
|
|
5155
5590
|
|
|
5591
|
+
## Connect the Dots (Puzzle Type #56)
|
|
5592
|
+
|
|
5593
|
+
* [**Mobile App (Android)**](https://play.google.com/store/apps/details?id=com.playvalve.connect.dots&hl=en_US)
|
|
5594
|
+
|
|
5595
|
+
* [**Mobile App (iOS)**](https://apps.apple.com/us/app/dot-link-connect-the-dots/id6444312485)
|
|
5596
|
+
|
|
5597
|
+
* [**Solver Code**][56]
|
|
5598
|
+
|
|
5599
|
+
<details>
|
|
5600
|
+
<summary><strong>Rules</strong></summary>
|
|
5601
|
+
|
|
5602
|
+
You are given a grid of empty cells and 2 filled cell per color. The goal is to connect the dots of the same color to form a single fully connected graph for each color.
|
|
5603
|
+
</details>
|
|
5604
|
+
|
|
5605
|
+
**Unsolved puzzle**
|
|
5606
|
+
|
|
5607
|
+
<img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/connect_the_dots_unsolved.png" alt="Connect the Dots unsolved" width="500">
|
|
5608
|
+
|
|
5609
|
+
Code to utilize this package and solve the puzzle:
|
|
5610
|
+
|
|
5611
|
+
```python
|
|
5612
|
+
import numpy as np
|
|
5613
|
+
from puzzle_solver import connect_the_dots_solver as solver
|
|
5614
|
+
board = np.array([
|
|
5615
|
+
['R', ' ', 'B', ' ', ' ', ' ', ' ', ' '],
|
|
5616
|
+
['Y', ' ', ' ', 'R', 'G', ' ', 'G', ' '],
|
|
5617
|
+
[' ', 'M', ' ', ' ', ' ', 'P', ' ', ' '],
|
|
5618
|
+
[' ', 'O', ' ', ' ', ' ', 'M', ' ', ' '],
|
|
5619
|
+
[' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '],
|
|
5620
|
+
['Br', 'B', ' ', ' ', 'Y', 'O', ' ', ' '],
|
|
5621
|
+
[' ', ' ', ' ', ' ', ' ', 'P', ' ', ' '],
|
|
5622
|
+
[' ', ' ', ' ', 'Br', ' ', ' ', ' ', ' '],
|
|
5623
|
+
])
|
|
5624
|
+
binst = solver.Board(board=board)
|
|
5625
|
+
solutions = binst.solve_and_print()
|
|
5626
|
+
```
|
|
5627
|
+
|
|
5628
|
+
**Script Output**
|
|
5629
|
+
|
|
5630
|
+
```python
|
|
5631
|
+
Solution found
|
|
5632
|
+
0 1 2 3 4 5 6 7
|
|
5633
|
+
┌───────┬───────────────────────┐
|
|
5634
|
+
0│ R R │ B B B B B B │
|
|
5635
|
+
├───┐ └───────┬───────────┐ │
|
|
5636
|
+
1│ Y │ R R R │ G G G │ B │
|
|
5637
|
+
│ ├───────────┴───┬───────┤ │
|
|
5638
|
+
2│ Y │ M M M M │ P P │ B │
|
|
5639
|
+
│ ├───────────┐ └───┐ │ │
|
|
5640
|
+
3│ Y │ O O O │ M M │ P │ B │
|
|
5641
|
+
│ └───────┐ └───────┤ │ │
|
|
5642
|
+
4│ Y Y Y │ O O O │ P │ B │
|
|
5643
|
+
├───┬───┐ └───────┐ │ │ │
|
|
5644
|
+
5│Br │ B │ Y Y Y │ O │ P │ B │
|
|
5645
|
+
│ │ └───────────┼───┘ │ │
|
|
5646
|
+
6│Br │ B B B B │ P P │ B │
|
|
5647
|
+
│ └───────────┐ └───────┘ │
|
|
5648
|
+
7│Br Br Br Br │ B B B B │
|
|
5649
|
+
└───────────────┴───────────────┘
|
|
5650
|
+
Solutions found: 1
|
|
5651
|
+
status: OPTIMAL
|
|
5652
|
+
Time taken: 2.91 seconds
|
|
5653
|
+
```
|
|
5654
|
+
|
|
5655
|
+
**Solved puzzle**
|
|
5656
|
+
|
|
5657
|
+
<img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/connect_the_dots_solved.png" alt="Connect the Dots solved" width="500">
|
|
5658
|
+
|
|
5659
|
+
---
|
|
5660
|
+
|
|
5661
|
+
## Nonograms Colored (Puzzle Type #57)
|
|
5662
|
+
|
|
5663
|
+
* [**Play online**](https://www.nonograms.org/nonograms2)
|
|
5664
|
+
|
|
5665
|
+
* [**Solver Code**][57]
|
|
5666
|
+
|
|
5667
|
+
<details>
|
|
5668
|
+
<summary><strong>Rules</strong></summary>
|
|
5669
|
+
|
|
5670
|
+
You have a grid of squares, which must all be filled in either white or one of the specified colors. Beside each row of the grid are listed, in order, the lengths of the runs of the specified colors on that row; above each column are listed, in order, the lengths of the runs of the specified colors in that column. Your aim is to fill in the entire grid white or one of the specified colors.
|
|
5671
|
+
|
|
5672
|
+
</details>
|
|
5673
|
+
|
|
5674
|
+
**Unsolved puzzle**
|
|
5675
|
+
|
|
5676
|
+
<img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/nonograms_colored_unsolved.png" alt="Nonograms Colored unsolved" width="500">
|
|
5677
|
+
|
|
5678
|
+
Code to utilize this package and solve the puzzle:
|
|
5679
|
+
|
|
5680
|
+
```python
|
|
5681
|
+
import numpy as np
|
|
5682
|
+
from puzzle_solver.puzzles.nonograms import nonograms_colored as solver
|
|
5683
|
+
top = [
|
|
5684
|
+
['5M'], ['8M'], ['1M', '3R', '6M'], ['1M', '5R', '5M'], ['8R', '4M'],
|
|
5685
|
+
['10R', '4M'], ['10R', '4M'], ['1G', '2M', '2R', '3P', '7R', '3M'], ['1L', '2G', '1G', '2F', '3M', '1R', '5P', '6R', '3M'], ['2L', '2G', '2F', '4M', '1R', '6P', '5R', '3M'],
|
|
5686
|
+
['3L', '1F', '1R', '2M', '8P', '5R', '3M'], ['1G', '1L', '1F', '1R', '2M', '8P', '5R', '3M'], ['1G', '2L', '2R', '1M', '8P', '5R', '3M'], ['1L', '1G', '3R', '1M', '8P', '5R', '3M'], ['1L', '3R', '2M', '7P', '6R', '3M'],
|
|
5687
|
+
['1L', '3R', '1M', '8P', '5R', '4M'], ['1L', '3R', '1M', '8P', '5R', '4M'], ['2R', '1M', '9P', '5R', '3M'], ['1R', '9P', '5R', '3M'], ['10P', '5R', '3M'],
|
|
5688
|
+
['1G', '1R', '9P', '5R', '4M'], ['1L', '1G', '1F', '2R', '8P', '5R', '6M'], ['1L', '2F', '3R', '6P', '5R', '7M'], ['1L', '1G', '1F', '4R', '5P', '5R', '3M', '3P', '2M'], ['1L', '1F', '6R', '2P', '6R', '3M', '4P', '2M'],
|
|
5689
|
+
['1L', '1F', '12R', '4M', '6P', '1M'], ['1L', '1F', '1R', '3L', '1M', '3R', '7M', '7P', '1M'], ['1G', '3L', '1G', '11M', '7P', '1R', '1M'], ['1L', '1L', '3G', '11M', '1R', '6P', '2R'], ['1G', '3L', '1G', '4F', '6M', '9R'],
|
|
5690
|
+
['3G', '2F', '2L', '1F', '4M', '7R'], ['4G', '1F', '4L'], ['1L', '1G', '1F', '1L', '2L'], ['2F', '1L']
|
|
5691
|
+
]
|
|
5692
|
+
side = [
|
|
5693
|
+
['1L', '1G'], ['1L', '1G'], ['1L', '2G'], ['6L', '1G', '2L', '2G'], ['2L', '1G', '3F', '1L', '2G', '1F', '1G'],
|
|
5694
|
+
['1G', '1L', '1G', '2F', '3R', '1L', '1G', '2F', '1G', '1L'], ['2G', '1L', '1G', '2F', '3R', '2L', '1G', '1F', '1L', '1F', '1G'], ['1G', '1L', '2G', '4L', '5R', '1L', '1G', '1M', '1F', '2L', '1F'], ['1G', '1F', '3L', '1G', '4R', '6R', '1L', '2M', '2F', '2L', '1F'], ['4F', '1L', '6R', '3P', '4R', '5M', '1L', '1F'],
|
|
5695
|
+
['1G', '1F', '1M', '7R', '1M', '6P', '3R', '4M', '2L'], ['5M', '2R', '3M', '8P', '2R', '4M', '2L'], ['8M', '10P', '2R', '4M'], ['2M', '14P', '2R', '4M'], ['3R', '14P', '2R', '4M'],
|
|
5696
|
+
['3R', '15P', '3R', '3M'], ['3R', '15P', '4R', '3M'], ['1M', '3R', '14P', '4R', '4M'], ['1M', '4R', '13P', '5R', '3M', '2R'], ['1M', '6R', '10P', '6R', '3M', '2P', '2R'],
|
|
5697
|
+
['1M', '7R', '5P', '9R', '3M', '3P', '2R'], ['2M', '20R', '3M', '4P', '2R'], ['3M', '18R', '3M', '5P', '2R'], ['4M', '16R', '3M', '6P', '2R'], ['5M', '13R', '5M', '6P', '2R'],
|
|
5698
|
+
['7M', '8R', '8M', '5P', '3R'], ['24M', '2P', '3R'], ['16M', '7M'], ['12M']
|
|
5699
|
+
]
|
|
5700
|
+
binst = solver.Board(top=top, side=side)
|
|
5701
|
+
solutions = binst.solve_and_print(visualize_colors={
|
|
5702
|
+
'M': 'darkmagenta',
|
|
5703
|
+
'R': 'magenta',
|
|
5704
|
+
'G': 'green',
|
|
5705
|
+
'P': 'pink',
|
|
5706
|
+
'L': 'lime',
|
|
5707
|
+
'F': 'forestgreen',
|
|
5708
|
+
})
|
|
5709
|
+
```
|
|
5710
|
+
|
|
5711
|
+
**Script Output**
|
|
5712
|
+
|
|
5713
|
+
```python
|
|
5714
|
+
Solution found
|
|
5715
|
+
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3
|
|
5716
|
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
|
|
5717
|
+
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
|
5718
|
+
0│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ L │ G │ │ │ │ │
|
|
5719
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5720
|
+
1│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ L │ G │ │ │ │
|
|
5721
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5722
|
+
2│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ L │ G │ G │ │ │
|
|
5723
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5724
|
+
3│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ L │ L │ L │ L │ L │ L │ G │ L │ L │ G │ G │ │ │
|
|
5725
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5726
|
+
4│ │ │ │ │ │ │ │ │ L │ L │ │ │ │ │ │ │ │ │ │ │ │ │ │ G │ F │ F │ F │ L │ G │ G │ F │ G │ │ │
|
|
5727
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5728
|
+
5│ │ │ │ │ │ │ │ │ G │ L │ │ │ │ │ │ │ │ │ │ │ │ G │ F │ F │ R │ R │ R │ L │ G │ F │ F │ G │ L │ │
|
|
5729
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5730
|
+
6│ │ │ │ │ │ │ │ │ G │ G │ L │ │ │ │ │ │ │ │ │ │ G │ F │ F │ R │ R │ R │ L │ L │ G │ F │ L │ F │ G │ │
|
|
5731
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5732
|
+
7│ │ │ │ │ │ │ │ │ │ G │ L │ G │ G │ L │ L │ L │ L │ │ │ │ │ R │ R │ R │ R │ R │ L │ G │ M │ F │ L │ L │ F │ │
|
|
5733
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5734
|
+
8│ │ │ │ │ │ │ │ │ G │ F │ L │ L │ L │ G │ R │ R │ R │ R │ │ │ R │ R │ R │ R │ R │ R │ L │ M │ M │ F │ F │ L │ L │ F │
|
|
5735
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5736
|
+
9│ │ │ │ │ │ │ │ │ F │ F │ F │ F │ L │ R │ R │ R │ R │ R │ R │ P │ P │ P │ R │ R │ R │ R │ M │ M │ M │ M │ M │ L │ │ F │
|
|
5737
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5738
|
+
10│ │ │ │ │ │ │ │ G │ F │ M │ R │ R │ R │ R │ R │ R │ R │ M │ P │ P │ P │ P │ P │ P │ R │ R │ R │ M │ M │ M │ M │ L │ L │ │
|
|
5739
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5740
|
+
11│ │ │ │ │ │ │ │ M │ M │ M │ M │ M │ R │ R │ M │ M │ M │ P │ P │ P │ P │ P │ P │ P │ P │ R │ R │ M │ M │ M │ M │ │ L │ L │
|
|
5741
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5742
|
+
12│ │ │ │ │ │ │ │ M │ M │ M │ M │ M │ M │ M │ M │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ R │ R │ M │ M │ M │ M │ │ │ │
|
|
5743
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5744
|
+
13│ │ │ │ │ │ │ │ │ M │ M │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ R │ R │ M │ M │ M │ M │ │ │ │ │
|
|
5745
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5746
|
+
14│ │ │ │ │ │ │ │ R │ R │ R │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ R │ R │ M │ M │ M │ M │ │ │ │ │
|
|
5747
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5748
|
+
15│ │ │ │ │ │ R │ R │ R │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ R │ R │ R │ M │ M │ M │ │ │ │ │ │
|
|
5749
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5750
|
+
16│ │ │ │ │ R │ R │ R │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ R │ R │ R │ R │ M │ M │ M │ │ │ │ │ │
|
|
5751
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5752
|
+
17│ │ │ │ M │ R │ R │ R │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ R │ R │ R │ R │ M │ M │ M │ M │ │ │ │ │ │
|
|
5753
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5754
|
+
18│ │ │ M │ R │ R │ R │ R │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ R │ R │ R │ R │ R │ M │ M │ M │ R │ R │ │ │ │ │
|
|
5755
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5756
|
+
19│ │ M │ R │ R │ R │ R │ R │ R │ P │ P │ P │ P │ P │ P │ P │ P │ P │ P │ R │ R │ R │ R │ R │ R │ M │ M │ M │ P │ P │ R │ R │ │ │ │
|
|
5757
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5758
|
+
20│ │ M │ R │ R │ R │ R │ R │ R │ R │ P │ P │ P │ P │ P │ R │ R │ R │ R │ R │ R │ R │ R │ R │ M │ M │ M │ P │ P │ P │ R │ R │ │ │ │
|
|
5759
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5760
|
+
21│ M │ M │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ M │ M │ M │ P │ P │ P │ P │ R │ R │ │ │ │
|
|
5761
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5762
|
+
22│ M │ M │ M │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ M │ M │ M │ P │ P │ P │ P │ P │ R │ R │ │ │ │
|
|
5763
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5764
|
+
23│ M │ M │ M │ M │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ M │ M │ M │ P │ P │ P │ P │ P │ P │ R │ R │ │ │ │
|
|
5765
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5766
|
+
24│ M │ M │ M │ M │ M │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ R │ M │ M │ M │ M │ M │ P │ P │ P │ P │ P │ P │ R │ R │ │ │ │
|
|
5767
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5768
|
+
25│ M │ M │ M │ M │ M │ M │ M │ R │ R │ R │ R │ R │ R │ R │ R │ M │ M │ M │ M │ M │ M │ M │ M │ P │ P │ P │ P │ P │ R │ R │ R │ │ │ │
|
|
5769
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5770
|
+
26│ │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ P │ P │ R │ R │ R │ │ │ │ │
|
|
5771
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5772
|
+
27│ │ │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ │ │ │ M │ M │ M │ M │ M │ M │ M │ │ │ │ │ │ │
|
|
5773
|
+
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
|
|
5774
|
+
28│ │ │ │ │ │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ M │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
|
5775
|
+
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
|
|
5776
|
+
Solutions found: 1
|
|
5777
|
+
status: OPTIMAL
|
|
5778
|
+
Time taken: 0.40 seconds
|
|
5779
|
+
```
|
|
5780
|
+
|
|
5781
|
+
The script also visualizes the solution:
|
|
5782
|
+
|
|
5783
|
+
<img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/nonograms_colored_script_output.png" alt="Nonograms Colored solved" width="500">
|
|
5784
|
+
|
|
5785
|
+
**Solved puzzle**
|
|
5786
|
+
|
|
5787
|
+
<img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/nonograms_colored_solved.png" alt="Nonograms Colored solved" width="500">
|
|
5788
|
+
|
|
5789
|
+
---
|
|
5790
|
+
|
|
5156
5791
|
---
|
|
5157
5792
|
|
|
5158
5793
|
## Why SAT / CP-SAT?
|
|
@@ -5235,7 +5870,7 @@ Issues and PRs welcome!
|
|
|
5235
5870
|
[29]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/battleships "puzzle_solver/src/puzzle_solver/puzzles/battleships at master · Ar-Kareem/puzzle_solver · GitHub"
|
|
5236
5871
|
[30]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/kakurasu "puzzle_solver/src/puzzle_solver/puzzles/kakurasu at master · Ar-Kareem/puzzle_solver · GitHub"
|
|
5237
5872
|
[31]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/star_battle "puzzle_solver/src/puzzle_solver/puzzles/star_battle at master · Ar-Kareem/puzzle_solver · GitHub"
|
|
5238
|
-
[32]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/
|
|
5873
|
+
[32]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/star_battle "puzzle_solver/src/puzzle_solver/puzzles/star_battle_shapeless at master · Ar-Kareem/puzzle_solver · GitHub"
|
|
5239
5874
|
[33]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/lits "puzzle_solver/src/puzzle_solver/puzzles/lits at master · Ar-Kareem/puzzle_solver · GitHub"
|
|
5240
5875
|
[34]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/black_box "puzzle_solver/src/puzzle_solver/puzzles/black_box at master · Ar-Kareem/puzzle_solver · GitHub"
|
|
5241
5876
|
[35]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/galaxies "puzzle_solver/src/puzzle_solver/puzzles/galaxies at master · Ar-Kareem/puzzle_solver · GitHub"
|
|
@@ -5252,10 +5887,12 @@ Issues and PRs welcome!
|
|
|
5252
5887
|
[46]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/heyawake "puzzle_solver/src/puzzle_solver/puzzles/heyawake at master · Ar-Kareem/puzzle_solver · GitHub"
|
|
5253
5888
|
[47]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/shingoki "puzzle_solver/src/puzzle_solver/puzzles/shingoki at master · Ar-Kareem/puzzle_solver · GitHub"
|
|
5254
5889
|
[48]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/tapa "puzzle_solver/src/puzzle_solver/puzzles/tapa at master · Ar-Kareem/puzzle_solver · GitHub"
|
|
5255
|
-
[49]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/
|
|
5890
|
+
[49]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/binairo "puzzle_solver/src/puzzle_solver/puzzles/binairo_plus at master · Ar-Kareem/puzzle_solver · GitHub"
|
|
5256
5891
|
[50]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/shakashaka "puzzle_solver/src/puzzle_solver/puzzles/shakashaka at master · Ar-Kareem/puzzle_solver · GitHub"
|
|
5257
5892
|
[51]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/kakuro "puzzle_solver/src/puzzle_solver/puzzles/kakuro at master · Ar-Kareem/puzzle_solver · GitHub"
|
|
5258
5893
|
[52]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/sudoku "puzzle_solver/src/puzzle_solver/puzzles/sudoku at master · Ar-Kareem/puzzle_solver · GitHub"
|
|
5259
5894
|
[53]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/sudoku "puzzle_solver/src/puzzle_solver/puzzles/sudoku at master · Ar-Kareem/puzzle_solver · GitHub"
|
|
5260
5895
|
[54]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/flood_it "puzzle_solver/src/puzzle_solver/puzzles/flood_it at master · Ar-Kareem/puzzle_solver · GitHub"
|
|
5261
5896
|
[55]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/pipes "puzzle_solver/src/puzzle_solver/puzzles/pipes at master · Ar-Kareem/puzzle_solver · GitHub"
|
|
5897
|
+
[56]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/connect_the_dots "puzzle_solver/src/puzzle_solver/puzzles/connect_the_dots at master · Ar-Kareem/puzzle_solver · GitHub"
|
|
5898
|
+
[57]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/nonograms "puzzle_solver/src/puzzle_solver/puzzles/nonograms at master · Ar-Kareem/puzzle_solver · GitHub"
|