Skip to content

shellqiqi/puzzle-loop-solver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Puzzle Loop Solver

Puzzle loop is a NPC problem.

TODO

Add a map of results of all one step trying to avoid duplicated heuristic process.

Usage

puzzle-loop-solver <puzzle file> <puzzle solution file>

Puzzle Format

<cols> <rows>
<puzzle>

<comments>

Cost

CPU: Ryzen R5 3500X

Size Time
40x50 30s
30x30 3s

Example

Puzzle

30 30
-3----3--33-3-32--22------3-1-
---22-1-120--32-33-322-----2--
222-22-------2-2-12-1-22-22--2
23-222-2-2323---3-----12-21---
2--3-0---1---1223-32---32-3-2-
-3--2--2-2-3--21---322-0--2---
3-23-2--212----2--1------22222
--2-1--23-1--0--122-2-2-1--2-3
3-01-202--2302--2--10---23-2--
2-3--2--2-0---0-2-------032-3-
-1--11-2-----11-32-202---2111-
---233-1202-31-2-0--1-12-2--3-
----12-333------3----1322-1-12
-0---322-2-1132--23-3--1-3-3--
-2----22-------223--1--3220---
-2-323-3------3---11221---2-3-
-20--10---21-3-22---22--2-1122
--3--12---101-2--3----------2-
3----22--332--021---1--------3
1-22-112022---3-32211-12-2---3
1-212-------3---3-32---1-321--
---2--2232-3-3----2-3--2-1-233
-------0--21121------1211---12
3--233----2--2--1--3---233----
-23--0-20---1---2----210--3---
221-3-2--1---12--2-----2212---
-32--3231--213-0-11---3-----03
32----1--2-21--2---231-02----3
2-12122--3----20----223-22----
---3--32-3-32-1-3---23-3-32233

Solution

█████x█████x███x███x███x███x███x███████x███x███████x███x▪x███
█ x3█ █ x █ █3█ █ █3█3█ █3█ █3█2█ x x2█2█ █ █ x x █ █3█ x1█ █
█x███x███x█x█x███x███x███x█x█x█x█x███x█x█x█x█x███x███x███x█x█
█ █ x x2█2█ █1x x1x2x0x x █3█2█ █3█3█ █3█2█2█ █ █ x x x2█ █ █
█x█████x█x█x█x███████x███x███x█x███x█x███x█x███x█x█████x███x█
█2x2x2█ █2█2█ █ x x █ █ █ x2x █2x x1█2x x1█ x2x2█ █2x2█ x x2█
█████x███x█x█x█████x█x█x█x███x█████x█████x███████x█x▪x███x███
x2x3█ x2x2█2█ x2x █2█3█2█3█ █ x x3█ x x █ x x1x2x █2x1x █ █ x
█████x█████x███████x███x███x███x███x███x█x███x███x█████x█x█x▪
█2x x █3x x0x x x x1x x x x1x2█2█3x █3█2█ █ █ █3█2x x3█ █2█ x
█x███x█████x███x█████x███x███x█x███x█x█x█x█x███x███████x█x███
█ █3█ x x2█ █ █2█ x2█ █3█ █ █2█1x █ █ █3█2█2x x0x x x2x █ x █
█x█x█████x█x█x█x█x▪x█x█x███x█x█x███x█x███x███x▪x███████x█████
█3█ x2x3█ █2█ █ █2x1█2█ x x █ █2█ x █1x x x █ x █ x2x2█2x2x2x
███x█████x█x█x█x███x█x███x▪x███x█████x█████x███x█████x███████
x x █2x x1█ █ █2x3█ █1x █ x0x x x1x2x2█ x2█ x2█ x1x █ x2x x3█
█████x▪x▪x███x█████x█x███x▪x█████x█████x▪x███x███x███x███████
█3x x0x1x x2x0x2x x █2█3x0x2█ x █2█ x x1x0x █ x █2█3x █2x x x
█████x███████x███x███x███x███x▪x█x███████x███x███x███x█x███x▪
x2x █3█ x x2█ █ █2█ x0x █ █ x0x █2x x x █ █ x █ x0x3█2█ █3█ x
███x███x▪x▪x█x█x█x█x▪x███x█x▪x▪x███x█████x███x█x▪x███x███x███
█ █1x x x1x1█ █2█ █ x █ x █1x1x x3█2█ x2x0x2█ █ x █2x1x1x1x █
█x█x███x███x█x█x███x▪x█x███x███████x█████x▪x█x█████x███x███x█
█ █ █ █2█3█3█ █1x2x0x2█ █3x1█ x2x x0x x █1x █1x2x x2█ █ █3█ █
█x███x█x█x███x█x███x███x███x███████x▪x▪x█x▪x█x███████x█x█x███
█ x x █ █1x2x █3█3█3█ x x █ x x x3█ x x █ x1█3█2x2x x1█ █1x2x
█x▪x▪x███x███x███x███x▪x▪x███x█████x███x███x███x█████x█x█x███
█ x0x x x █3█2x2x x2x x1x1x3█2█ x x2█3█ x3█ x x1█ x3█ █3█ █ █
███x███████x█████x███████████x███x███x█████x███x█x███x███x█x█
x █2█ x x x x2x2█ █ x x x x x x2█2█3x x x1x █ █3█2█2x0x x █ █
███x█x█████x███x█x███████x▪x███x█x███x▪x▪x███x███x█x▪x███x█x█
█ x2█ █3x2█3█ █3█ x x x █ x █3█ █ x █1x1x2█2x1x x █ x2█ █3█ █
█████x███x███x███x▪x█████x███x█x█x███x█████x█████x█████x███x█
x x2x0x █ x1x0x x x █2x1x █3x █2█2█ x █ x2x2█ x █2x x1x1x2x2█
▪x███x███x▪x▪x███████x▪x▪x███x█x█x█x███x█████x▪x█████x███████
x █ █3█ x x1x2█ x x x1x0x1x █2█ █ █3█ x █ x x x x x █ █ x2x x
███x███x███████x███x███x█████x███x███x███x█████████x█x█x█████
█3x x x █ x2x2x █ █3█3█2█ x x0x2x1x x █ x1█ x x x █ █ █ █ x3█
███████x█████████x███x█x█████x█████x███x▪x███████x███x█x█x███
x1x x2█2x x1x1x2x0x2x2█ x x █3█ x3█2█2x1x1x x1x2█ x2x █ █ █3x
▪x███x█████x▪x███x█████x███x███x███x█x███████x▪x█x███x███x███
x1█ █2x1x2█ x █ █ █ x x █3█ x x █3x █3█2x x █ x1█ █3█2x1x x █
▪x█x███x▪x█x▪x█x█x█x███x█x█x███x███x███x███x███x█x█x███x███x█
x █ x █2x █ x2█2█3█2█ █3█ █3█ █ x █ x2x █3█ x █2█ █1x █2█3█3█
▪x███x███x█████x███x█x███x███x█x███x█████x█████x███x▪x█x█x███
x x █ x █ x x x0x x █2x1x1x2x1█ █ x █ x x x1x2x1x1x x █ █1x2x
███x███x█x███x▪x███x███x█████x███x▪x█x█████x█████x███x███x███
█3█ x █2█3█3█ x █ █ x2█ █ x2█ x x1x █ █3x █ █ x2█3█3█ x x █ █
█x███x█x███x█████x███x█x█x▪x███x█████x███x███x▪x███x███x███x█
█ x2█3█ x x0x x2x0x █ █ █1x x █ █2x x x █ x2x1x0x x x3█ █ x █
███x███x███x█████x▪x███x█x▪x▪x█x█x█████x███████x███████x█x███
x2█2x1x █3█ █2x █ x1x x █ x1x2█ █ █2x █ x x x █2█2x1x2x █ █ x
▪x███x███x█x█x███x███████x█████x███x▪x███████x█x█x▪x█████x███
x x3█2█ x █3█2█3x1█ x x2x1█3x x0x x1x1x x x █3█ █ x █ x x0x3█
█████x█x▪x███x███x███████x█████x███████x███x███x█████x▪x▪x███
█3x2x █ x x x1x █ x2x x2█1x x █2█ x x █2█3█1x x0x2x x x x █3x
█████x█████████x█x█████x█x▪x███x█████x█x█x█x███x███████x▪x███
x2x █1x2x1x2x2█ █ █3x █ █ x █2x0x x █ █ █2█2█3█ █2x2x █ x x █
█████x███x███x█x█x███x█x█x███x▪x███x█x█x█x█x█x█x█x█████x███x█
█ x x █3█ █ █3█2█ x3█ █3█2█ x1x █3█ █ █ █2█3█ █3█ █3x2x2█3█3█
███████x███x███x█████x███x███████x███x███x███x███x███████x███