multi-puzzle-solver 0.8.6__tar.gz → 0.8.7__tar.gz

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.
Files changed (60) hide show
  1. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/PKG-INFO +15 -14
  2. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/README.md +14 -13
  3. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/multi_puzzle_solver.egg-info/PKG-INFO +15 -14
  4. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/multi_puzzle_solver.egg-info/SOURCES.txt +2 -2
  5. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/__init__.py +2 -2
  6. multi_puzzle_solver-0.8.6/tests/test_chess_sequence.py → multi_puzzle_solver-0.8.7/tests/test_chess_range.py +1 -1
  7. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/pyproject.toml +0 -0
  8. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/setup.cfg +0 -0
  9. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/multi_puzzle_solver.egg-info/dependency_links.txt +0 -0
  10. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/multi_puzzle_solver.egg-info/requires.txt +0 -0
  11. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/multi_puzzle_solver.egg-info/top_level.txt +0 -0
  12. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/core/utils.py +0 -0
  13. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/core/utils_ortools.py +0 -0
  14. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/bridges/bridges.py +0 -0
  15. /multi_puzzle_solver-0.8.6/src/puzzle_solver/puzzles/chess_sequence/chess_sequence.py → /multi_puzzle_solver-0.8.7/src/puzzle_solver/puzzles/chess_range/chess_range.py +0 -0
  16. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/dominosa/dominosa.py +0 -0
  17. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/filling/filling.py +0 -0
  18. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/guess/guess.py +0 -0
  19. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/inertia/inertia.py +0 -0
  20. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/inertia/parse_map/parse_map.py +0 -0
  21. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/inertia/tsp.py +0 -0
  22. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/keen/keen.py +0 -0
  23. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/light_up/light_up.py +0 -0
  24. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/magnets/magnets.py +0 -0
  25. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/map/map.py +0 -0
  26. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/minesweeper/minesweeper.py +0 -0
  27. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/mosaic/mosaic.py +0 -0
  28. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/nonograms/nonograms.py +0 -0
  29. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/pearl/pearl.py +0 -0
  30. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/range/range.py +0 -0
  31. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/signpost/signpost.py +0 -0
  32. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/singles/singles.py +0 -0
  33. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/sudoku/sudoku.py +0 -0
  34. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/tents/tents.py +0 -0
  35. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/towers/towers.py +0 -0
  36. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/tracks/tracks.py +0 -0
  37. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/undead/undead.py +0 -0
  38. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/src/puzzle_solver/puzzles/unruly/unruly.py +0 -0
  39. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_bridges.py +0 -0
  40. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_dominosa.py +0 -0
  41. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_filling.py +0 -0
  42. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_guess.py +0 -0
  43. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_inertia.py +0 -0
  44. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_keen.py +0 -0
  45. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_light_up.py +0 -0
  46. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_magnets.py +0 -0
  47. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_map.py +0 -0
  48. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_minesweeper.py +0 -0
  49. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_mosaic.py +0 -0
  50. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_nonograms.py +0 -0
  51. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_pearl.py +0 -0
  52. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_range.py +0 -0
  53. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_signpost.py +0 -0
  54. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_singles.py +0 -0
  55. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_sudoku.py +0 -0
  56. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_tents.py +0 -0
  57. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_towers.py +0 -0
  58. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_tracks.py +0 -0
  59. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_undead.py +0 -0
  60. {multi_puzzle_solver-0.8.6 → multi_puzzle_solver-0.8.7}/tests/test_unruly.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: multi-puzzle-solver
3
- Version: 0.8.6
3
+ Version: 0.8.7
4
4
  Summary: Efficient solvers for numerous popular and esoteric logic puzzles using CP-SAT
5
5
  Author: Ar-Kareem
6
6
  Project-URL: Homepage, https://github.com/Ar-Kareem/puzzle_solver
@@ -206,8 +206,8 @@ These are all the puzzles that are implemented in this repo. <br> Click on any o
206
206
  </a>
207
207
  </td>
208
208
  <td align="center">
209
- <a href="#chess-sequence-puzzle-type-23"><b>Chess Sequence</b><br><br>
210
- <img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/chess_sequence_unsolved.png" alt="Chess sequence" height="120">
209
+ <a href="#chess-range-puzzle-type-23"><b>Chess Range</b><br><br>
210
+ <img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/chess_range_unsolved.png" alt="Chess range" height="120">
211
211
  </a>
212
212
  </td>
213
213
 
@@ -249,7 +249,7 @@ These are all the puzzles that are implemented in this repo. <br> Click on any o
249
249
  - [Bridges (Puzzle Type #20)](#bridges-puzzle-type-20)
250
250
  - [Inertia (Puzzle Type #21)](#inertia-puzzle-type-21)
251
251
  - [Guess (Puzzle Type #22)](#guess-puzzle-type-22)
252
- - [Chess Sequence(Puzzle Type #23)](#chess-sequencepuzzle-type-23)
252
+ - [Chess Range(Puzzle Type #23)](#chess-rangepuzzle-type-23)
253
253
  - [Why SAT / CP-SAT?](#why-sat--cp-sat)
254
254
  - [What’s Inside](#whats-inside)
255
255
  - [Testing](#testing)
@@ -1935,7 +1935,7 @@ In the case when there's only one possible choice left, the solver will inform y
1935
1935
 
1936
1936
  ---
1937
1937
 
1938
- ## Chess Sequence(Puzzle Type #23)
1938
+ ## Chess Range(Puzzle Type #23)
1939
1939
 
1940
1940
  * [**Play online**](https://www.puzzle-chess.com/chess-ranger-11/)
1941
1941
 
@@ -1944,24 +1944,25 @@ In the case when there's only one possible choice left, the solver will inform y
1944
1944
  <details>
1945
1945
  <summary><strong>Rules</strong></summary>
1946
1946
 
1947
- You are given a chess board with $N$ pieces distributed on it. Your aim is to make $N-1$ sequence of moves where each move is a legal chess move and captures another piece.
1947
+ You are given a chess board with $N$ pieces distributed on it. Your aim is to make $N-1$ range of moves where each move is a legal chess move and captures another piece.
1948
1948
 
1949
- This means that at the end of the $N-1$ moves, there is only one piece left alive on the board.
1950
-
1951
- A move that does not capture another piece is not allowed.
1949
+ - Pieces move as standard chess pieces.
1950
+ - You can perform only capture moves. A move that does not capture another piece is not allowed.
1951
+ - You are allowed to capture the king.
1952
+ - The goal is to end up with one single piece on the board.
1952
1953
 
1953
1954
  </details>
1954
1955
 
1955
1956
  **Unsolved puzzle**
1956
1957
 
1957
- <img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/chess_sequence_unsolved.png" alt="Chess sequence unsolved" width="500">
1958
+ <img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/chess_range_unsolved.png" alt="Chess range unsolved" width="500">
1958
1959
 
1959
1960
  Code to utilize this package and solve the puzzle:
1960
1961
 
1961
1962
  (Note that this puzzle does not typically have a unique solution. Thus, we specify here that we only want the first valid solution that the solver finds.)
1962
1963
 
1963
1964
  ```python
1964
- from puzzle_solver import chess_sequence_solver as solver
1965
+ from puzzle_solver import chess_range_solver as solver
1965
1966
  # algebraic notation
1966
1967
  board = ['Qe7', 'Nc6', 'Kb6', 'Pb5', 'Nf5', 'Pg4', 'Rb3', 'Bc3', 'Pd3', 'Pc2', 'Rg2']
1967
1968
  binst = solver.Board(board)
@@ -1981,7 +1982,7 @@ Time taken: 6.27 seconds
1981
1982
 
1982
1983
  **Solved puzzle**
1983
1984
 
1984
- <img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/chess_sequence_solved.png" alt="Chess sequence solved" width="500">
1985
+ <img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/chess_range_solved.png" alt="Chess range solved" width="500">
1985
1986
 
1986
1987
  ---
1987
1988
 
@@ -2025,7 +2026,7 @@ Each sub directory in `src/puzzle_solver/puzzles/` targets a different puzzle ty
2025
2026
  * `unruly` — Unruly (no triples + balance). ([Chapter 38][15])
2026
2027
  * `tracks` — Tracks (connected components). ([Chapter 40][16])
2027
2028
  * `mosaic` — Mosaic (Tapa-like tiling). ([Chapter 42][17])
2028
- * `chess_sequence` — Chess Sequence (chess moves). ([Puzzle-Chess][23])
2029
+ * `chess_range` — Chess Range (chess moves). ([Puzzle-Chess][23])
2029
2030
 
2030
2031
  ---
2031
2032
 
@@ -2088,4 +2089,4 @@ Issues and PRs welcome!
2088
2089
  [15]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/unruly "puzzle_solver/src/puzzle_solver/puzzles/unruly at master · Ar-Kareem/puzzle_solver · GitHub"
2089
2090
  [16]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/tracks "puzzle_solver/src/puzzle_solver/puzzles/tracks at master · Ar-Kareem/puzzle_solver · GitHub"
2090
2091
  [17]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/mosaic "puzzle_solver/src/puzzle_solver/puzzles/mosaic at master · Ar-Kareem/puzzle_solver · GitHub"
2091
- [23]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/chess_sequence "puzzle_solver/src/puzzle_solver/puzzles/chess_sequence at master · Ar-Kareem/puzzle_solver · GitHub"
2092
+ [23]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/chess_range "puzzle_solver/src/puzzle_solver/puzzles/chess_range at master · Ar-Kareem/puzzle_solver · GitHub"
@@ -180,8 +180,8 @@ These are all the puzzles that are implemented in this repo. <br> Click on any o
180
180
  </a>
181
181
  </td>
182
182
  <td align="center">
183
- <a href="#chess-sequence-puzzle-type-23"><b>Chess Sequence</b><br><br>
184
- <img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/chess_sequence_unsolved.png" alt="Chess sequence" height="120">
183
+ <a href="#chess-range-puzzle-type-23"><b>Chess Range</b><br><br>
184
+ <img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/chess_range_unsolved.png" alt="Chess range" height="120">
185
185
  </a>
186
186
  </td>
187
187
 
@@ -223,7 +223,7 @@ These are all the puzzles that are implemented in this repo. <br> Click on any o
223
223
  - [Bridges (Puzzle Type #20)](#bridges-puzzle-type-20)
224
224
  - [Inertia (Puzzle Type #21)](#inertia-puzzle-type-21)
225
225
  - [Guess (Puzzle Type #22)](#guess-puzzle-type-22)
226
- - [Chess Sequence(Puzzle Type #23)](#chess-sequencepuzzle-type-23)
226
+ - [Chess Range(Puzzle Type #23)](#chess-rangepuzzle-type-23)
227
227
  - [Why SAT / CP-SAT?](#why-sat--cp-sat)
228
228
  - [What’s Inside](#whats-inside)
229
229
  - [Testing](#testing)
@@ -1909,7 +1909,7 @@ In the case when there's only one possible choice left, the solver will inform y
1909
1909
 
1910
1910
  ---
1911
1911
 
1912
- ## Chess Sequence(Puzzle Type #23)
1912
+ ## Chess Range(Puzzle Type #23)
1913
1913
 
1914
1914
  * [**Play online**](https://www.puzzle-chess.com/chess-ranger-11/)
1915
1915
 
@@ -1918,24 +1918,25 @@ In the case when there's only one possible choice left, the solver will inform y
1918
1918
  <details>
1919
1919
  <summary><strong>Rules</strong></summary>
1920
1920
 
1921
- You are given a chess board with $N$ pieces distributed on it. Your aim is to make $N-1$ sequence of moves where each move is a legal chess move and captures another piece.
1921
+ You are given a chess board with $N$ pieces distributed on it. Your aim is to make $N-1$ range of moves where each move is a legal chess move and captures another piece.
1922
1922
 
1923
- This means that at the end of the $N-1$ moves, there is only one piece left alive on the board.
1924
-
1925
- A move that does not capture another piece is not allowed.
1923
+ - Pieces move as standard chess pieces.
1924
+ - You can perform only capture moves. A move that does not capture another piece is not allowed.
1925
+ - You are allowed to capture the king.
1926
+ - The goal is to end up with one single piece on the board.
1926
1927
 
1927
1928
  </details>
1928
1929
 
1929
1930
  **Unsolved puzzle**
1930
1931
 
1931
- <img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/chess_sequence_unsolved.png" alt="Chess sequence unsolved" width="500">
1932
+ <img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/chess_range_unsolved.png" alt="Chess range unsolved" width="500">
1932
1933
 
1933
1934
  Code to utilize this package and solve the puzzle:
1934
1935
 
1935
1936
  (Note that this puzzle does not typically have a unique solution. Thus, we specify here that we only want the first valid solution that the solver finds.)
1936
1937
 
1937
1938
  ```python
1938
- from puzzle_solver import chess_sequence_solver as solver
1939
+ from puzzle_solver import chess_range_solver as solver
1939
1940
  # algebraic notation
1940
1941
  board = ['Qe7', 'Nc6', 'Kb6', 'Pb5', 'Nf5', 'Pg4', 'Rb3', 'Bc3', 'Pd3', 'Pc2', 'Rg2']
1941
1942
  binst = solver.Board(board)
@@ -1955,7 +1956,7 @@ Time taken: 6.27 seconds
1955
1956
 
1956
1957
  **Solved puzzle**
1957
1958
 
1958
- <img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/chess_sequence_solved.png" alt="Chess sequence solved" width="500">
1959
+ <img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/chess_range_solved.png" alt="Chess range solved" width="500">
1959
1960
 
1960
1961
  ---
1961
1962
 
@@ -1999,7 +2000,7 @@ Each sub directory in `src/puzzle_solver/puzzles/` targets a different puzzle ty
1999
2000
  * `unruly` — Unruly (no triples + balance). ([Chapter 38][15])
2000
2001
  * `tracks` — Tracks (connected components). ([Chapter 40][16])
2001
2002
  * `mosaic` — Mosaic (Tapa-like tiling). ([Chapter 42][17])
2002
- * `chess_sequence` — Chess Sequence (chess moves). ([Puzzle-Chess][23])
2003
+ * `chess_range` — Chess Range (chess moves). ([Puzzle-Chess][23])
2003
2004
 
2004
2005
  ---
2005
2006
 
@@ -2062,4 +2063,4 @@ Issues and PRs welcome!
2062
2063
  [15]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/unruly "puzzle_solver/src/puzzle_solver/puzzles/unruly at master · Ar-Kareem/puzzle_solver · GitHub"
2063
2064
  [16]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/tracks "puzzle_solver/src/puzzle_solver/puzzles/tracks at master · Ar-Kareem/puzzle_solver · GitHub"
2064
2065
  [17]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/mosaic "puzzle_solver/src/puzzle_solver/puzzles/mosaic at master · Ar-Kareem/puzzle_solver · GitHub"
2065
- [23]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/chess_sequence "puzzle_solver/src/puzzle_solver/puzzles/chess_sequence at master · Ar-Kareem/puzzle_solver · GitHub"
2066
+ [23]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/chess_range "puzzle_solver/src/puzzle_solver/puzzles/chess_range at master · Ar-Kareem/puzzle_solver · GitHub"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: multi-puzzle-solver
3
- Version: 0.8.6
3
+ Version: 0.8.7
4
4
  Summary: Efficient solvers for numerous popular and esoteric logic puzzles using CP-SAT
5
5
  Author: Ar-Kareem
6
6
  Project-URL: Homepage, https://github.com/Ar-Kareem/puzzle_solver
@@ -206,8 +206,8 @@ These are all the puzzles that are implemented in this repo. <br> Click on any o
206
206
  </a>
207
207
  </td>
208
208
  <td align="center">
209
- <a href="#chess-sequence-puzzle-type-23"><b>Chess Sequence</b><br><br>
210
- <img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/chess_sequence_unsolved.png" alt="Chess sequence" height="120">
209
+ <a href="#chess-range-puzzle-type-23"><b>Chess Range</b><br><br>
210
+ <img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/chess_range_unsolved.png" alt="Chess range" height="120">
211
211
  </a>
212
212
  </td>
213
213
 
@@ -249,7 +249,7 @@ These are all the puzzles that are implemented in this repo. <br> Click on any o
249
249
  - [Bridges (Puzzle Type #20)](#bridges-puzzle-type-20)
250
250
  - [Inertia (Puzzle Type #21)](#inertia-puzzle-type-21)
251
251
  - [Guess (Puzzle Type #22)](#guess-puzzle-type-22)
252
- - [Chess Sequence(Puzzle Type #23)](#chess-sequencepuzzle-type-23)
252
+ - [Chess Range(Puzzle Type #23)](#chess-rangepuzzle-type-23)
253
253
  - [Why SAT / CP-SAT?](#why-sat--cp-sat)
254
254
  - [What’s Inside](#whats-inside)
255
255
  - [Testing](#testing)
@@ -1935,7 +1935,7 @@ In the case when there's only one possible choice left, the solver will inform y
1935
1935
 
1936
1936
  ---
1937
1937
 
1938
- ## Chess Sequence(Puzzle Type #23)
1938
+ ## Chess Range(Puzzle Type #23)
1939
1939
 
1940
1940
  * [**Play online**](https://www.puzzle-chess.com/chess-ranger-11/)
1941
1941
 
@@ -1944,24 +1944,25 @@ In the case when there's only one possible choice left, the solver will inform y
1944
1944
  <details>
1945
1945
  <summary><strong>Rules</strong></summary>
1946
1946
 
1947
- You are given a chess board with $N$ pieces distributed on it. Your aim is to make $N-1$ sequence of moves where each move is a legal chess move and captures another piece.
1947
+ You are given a chess board with $N$ pieces distributed on it. Your aim is to make $N-1$ range of moves where each move is a legal chess move and captures another piece.
1948
1948
 
1949
- This means that at the end of the $N-1$ moves, there is only one piece left alive on the board.
1950
-
1951
- A move that does not capture another piece is not allowed.
1949
+ - Pieces move as standard chess pieces.
1950
+ - You can perform only capture moves. A move that does not capture another piece is not allowed.
1951
+ - You are allowed to capture the king.
1952
+ - The goal is to end up with one single piece on the board.
1952
1953
 
1953
1954
  </details>
1954
1955
 
1955
1956
  **Unsolved puzzle**
1956
1957
 
1957
- <img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/chess_sequence_unsolved.png" alt="Chess sequence unsolved" width="500">
1958
+ <img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/chess_range_unsolved.png" alt="Chess range unsolved" width="500">
1958
1959
 
1959
1960
  Code to utilize this package and solve the puzzle:
1960
1961
 
1961
1962
  (Note that this puzzle does not typically have a unique solution. Thus, we specify here that we only want the first valid solution that the solver finds.)
1962
1963
 
1963
1964
  ```python
1964
- from puzzle_solver import chess_sequence_solver as solver
1965
+ from puzzle_solver import chess_range_solver as solver
1965
1966
  # algebraic notation
1966
1967
  board = ['Qe7', 'Nc6', 'Kb6', 'Pb5', 'Nf5', 'Pg4', 'Rb3', 'Bc3', 'Pd3', 'Pc2', 'Rg2']
1967
1968
  binst = solver.Board(board)
@@ -1981,7 +1982,7 @@ Time taken: 6.27 seconds
1981
1982
 
1982
1983
  **Solved puzzle**
1983
1984
 
1984
- <img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/chess_sequence_solved.png" alt="Chess sequence solved" width="500">
1985
+ <img src="https://raw.githubusercontent.com/Ar-Kareem/puzzle_solver/master/images/chess_range_solved.png" alt="Chess range solved" width="500">
1985
1986
 
1986
1987
  ---
1987
1988
 
@@ -2025,7 +2026,7 @@ Each sub directory in `src/puzzle_solver/puzzles/` targets a different puzzle ty
2025
2026
  * `unruly` — Unruly (no triples + balance). ([Chapter 38][15])
2026
2027
  * `tracks` — Tracks (connected components). ([Chapter 40][16])
2027
2028
  * `mosaic` — Mosaic (Tapa-like tiling). ([Chapter 42][17])
2028
- * `chess_sequence` — Chess Sequence (chess moves). ([Puzzle-Chess][23])
2029
+ * `chess_range` — Chess Range (chess moves). ([Puzzle-Chess][23])
2029
2030
 
2030
2031
  ---
2031
2032
 
@@ -2088,4 +2089,4 @@ Issues and PRs welcome!
2088
2089
  [15]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/unruly "puzzle_solver/src/puzzle_solver/puzzles/unruly at master · Ar-Kareem/puzzle_solver · GitHub"
2089
2090
  [16]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/tracks "puzzle_solver/src/puzzle_solver/puzzles/tracks at master · Ar-Kareem/puzzle_solver · GitHub"
2090
2091
  [17]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/mosaic "puzzle_solver/src/puzzle_solver/puzzles/mosaic at master · Ar-Kareem/puzzle_solver · GitHub"
2091
- [23]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/chess_sequence "puzzle_solver/src/puzzle_solver/puzzles/chess_sequence at master · Ar-Kareem/puzzle_solver · GitHub"
2092
+ [23]: https://github.com/Ar-Kareem/puzzle_solver/tree/master/src/puzzle_solver/puzzles/chess_range "puzzle_solver/src/puzzle_solver/puzzles/chess_range at master · Ar-Kareem/puzzle_solver · GitHub"
@@ -9,7 +9,7 @@ src/puzzle_solver/__init__.py
9
9
  src/puzzle_solver/core/utils.py
10
10
  src/puzzle_solver/core/utils_ortools.py
11
11
  src/puzzle_solver/puzzles/bridges/bridges.py
12
- src/puzzle_solver/puzzles/chess_sequence/chess_sequence.py
12
+ src/puzzle_solver/puzzles/chess_range/chess_range.py
13
13
  src/puzzle_solver/puzzles/dominosa/dominosa.py
14
14
  src/puzzle_solver/puzzles/filling/filling.py
15
15
  src/puzzle_solver/puzzles/guess/guess.py
@@ -34,7 +34,7 @@ src/puzzle_solver/puzzles/tracks/tracks.py
34
34
  src/puzzle_solver/puzzles/undead/undead.py
35
35
  src/puzzle_solver/puzzles/unruly/unruly.py
36
36
  tests/test_bridges.py
37
- tests/test_chess_sequence.py
37
+ tests/test_chess_range.py
38
38
  tests/test_dominosa.py
39
39
  tests/test_filling.py
40
40
  tests/test_guess.py
@@ -1,5 +1,5 @@
1
1
  from puzzle_solver.puzzles.bridges import bridges as bridges_solver
2
- from puzzle_solver.puzzles.chess_sequence import chess_sequence as chess_sequence_solver
2
+ from puzzle_solver.puzzles.chess_range import chess_range as chess_range_solver
3
3
  from puzzle_solver.puzzles.dominosa import dominosa as dominosa_solver
4
4
  from puzzle_solver.puzzles.filling import filling as filling_solver
5
5
  from puzzle_solver.puzzles.guess import guess as guess_solver
@@ -24,4 +24,4 @@ from puzzle_solver.puzzles.unruly import unruly as unruly_solver
24
24
 
25
25
  from puzzle_solver.puzzles.inertia.parse_map.parse_map import main as inertia_image_parser
26
26
 
27
- __version__ = '0.8.6'
27
+ __version__ = '0.8.7'
@@ -1,4 +1,4 @@
1
- from puzzle_solver import chess_sequence_solver as solver
1
+ from puzzle_solver import chess_range_solver as solver
2
2
 
3
3
 
4
4
  # https://www.puzzle-chess.com/chess-ranger-11/?e=Nzo5NDAsOTEy