tilingPuzzles 0.2.1__tar.gz → 0.2.3__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.
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/Demo.ipynb +8 -6
- tilingpuzzles-0.2.3/Demo.qmd +49 -0
- tilingpuzzles-0.2.3/PKG-INFO +79 -0
- tilingpuzzles-0.2.3/README.md +61 -0
- tilingpuzzles-0.2.3/README.qmd +51 -0
- tilingpuzzles-0.2.3/README_files/figure-commonmark/cell-2-output-1.png +0 -0
- tilingpuzzles-0.2.3/README_files/figure-commonmark/cell-2-output-2.png +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/pyproject.toml +2 -2
- tilingpuzzles-0.2.1/PKG-INFO +0 -42
- tilingpuzzles-0.2.1/README.md +0 -24
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/.gitignore +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/.python-version +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/IPYNB/.gitignore +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/IPYNB/Test-subtree.qmd +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/IPYNB/Testing-counts.qmd +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/IPYNB/Testing-grafik.qmd +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/IPYNB/Testing-pytest.qmd +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/IPYNB/Testing-solvers.qmd +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/docs/.gitignore +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/docs/README.md +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/docs/_quarto.yml +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/docs/src/Stone.qmd +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/docs/src/Tile.qmd +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/pytest.ini +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/__init__.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/benchmark/README.md +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/benchmark/__init__.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/benchmark/data/timingResulsts.csv +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/benchmark/git_state.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/benchmark/run_benchmark.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/examples/README.md +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/examples/__init__.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/examples/rectangularPentomino.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/examples/scaledStones.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/examples/tests/__init__.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/examples/tests/test_rectangularPentomino.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/examples/tests/test_scaledStones.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/__init__.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/game.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/generic.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/komino.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/realisations.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/stone.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/stone_core.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/tests/__init__.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/tests/test_game.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/tests/test_komino.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/tests/test_realisations.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/tests/test_stone.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/tests/test_tile.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/tile.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/logUtils/__init__.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/logUtils/callGraph.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/logger.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/solvers/__init__.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/solvers/hights.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/solvers/kominoSolver.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/solvers/tests/test_komino_solver.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/visualize/__init__.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/visualize/visualize.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/test/test_pytest.py +0 -0
- {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/test/vibetest_1.py +0 -0
@@ -57,11 +57,11 @@
|
|
57
57
|
"from tilingpuzzles.games.stone import Stone\n",
|
58
58
|
"from tilingpuzzles.games.komino import Komino\n",
|
59
59
|
"\n",
|
60
|
-
"#
|
60
|
+
"# Degree of the stones\n",
|
61
61
|
"# k=5 => Pentomino\n",
|
62
62
|
"k=6\n",
|
63
63
|
"\n",
|
64
|
-
"#
|
64
|
+
"# The Universe of the Coverage problem\n",
|
65
65
|
"U=\"\"\"\n",
|
66
66
|
"#######\n",
|
67
67
|
"#######\n",
|
@@ -81,7 +81,7 @@
|
|
81
81
|
"display(U)\n",
|
82
82
|
"\n",
|
83
83
|
"komi=Komino(U,k=k)\n",
|
84
|
-
"# limits:
|
84
|
+
"# limits: number of times a stone of a certain shape can be used.\n",
|
85
85
|
"komi.find_solution(limits=1)\n"
|
86
86
|
]
|
87
87
|
},
|
@@ -90,7 +90,9 @@
|
|
90
90
|
"id": "6ac3e29d",
|
91
91
|
"metadata": {},
|
92
92
|
"source": [
|
93
|
-
"#
|
93
|
+
"# Count Solutions \n",
|
94
|
+
"Calculate the number of Solutions if every Stone can be used a unlimited amount of time\n",
|
95
|
+
"\n"
|
94
96
|
]
|
95
97
|
},
|
96
98
|
{
|
@@ -406,8 +408,8 @@
|
|
406
408
|
],
|
407
409
|
"source": [
|
408
410
|
"\n",
|
409
|
-
"komi.count_solutions(limits=None,progressLevel=
|
410
|
-
"
|
411
|
+
"komi.count_solutions(limits=None,progressLevel=0)\n",
|
412
|
+
"\n"
|
411
413
|
]
|
412
414
|
}
|
413
415
|
],
|
@@ -0,0 +1,49 @@
|
|
1
|
+
---
|
2
|
+
title: finden einer Lösung
|
3
|
+
jupyter: python3
|
4
|
+
---
|
5
|
+
|
6
|
+
|
7
|
+
|
8
|
+
```{python}
|
9
|
+
from tilingpuzzles.games.stone import Stone
|
10
|
+
from tilingpuzzles.games.komino import Komino
|
11
|
+
|
12
|
+
# Degree of the stones
|
13
|
+
# k=5 => Pentomino
|
14
|
+
k=6
|
15
|
+
|
16
|
+
# The Universe of the Coverage problem
|
17
|
+
U="""
|
18
|
+
#######
|
19
|
+
#######
|
20
|
+
###
|
21
|
+
#######
|
22
|
+
#######
|
23
|
+
###
|
24
|
+
######
|
25
|
+
#######
|
26
|
+
#######
|
27
|
+
"""
|
28
|
+
|
29
|
+
U=Stone.from_string(U)
|
30
|
+
|
31
|
+
assert len(U)%k==0
|
32
|
+
|
33
|
+
display(U)
|
34
|
+
|
35
|
+
komi=Komino(U,k=k)
|
36
|
+
# limits: number of times a stone of a certain shape can be used.
|
37
|
+
komi.find_solution(limits=1)
|
38
|
+
```
|
39
|
+
|
40
|
+
# Count Solutions
|
41
|
+
Calculate the number of Solutions if every Stone can be used a unlimited amount of time
|
42
|
+
|
43
|
+
|
44
|
+
```{python}
|
45
|
+
|
46
|
+
komi.count_solutions(limits=None,progressLevel=0)
|
47
|
+
|
48
|
+
```
|
49
|
+
|
@@ -0,0 +1,79 @@
|
|
1
|
+
Metadata-Version: 2.4
|
2
|
+
Name: tilingPuzzles
|
3
|
+
Version: 0.2.3
|
4
|
+
Summary: finding and counting solutions of tilingpuzzles like Pentomino
|
5
|
+
Author-email: jonathan graf <jonathangraf@outlook.de>
|
6
|
+
Requires-Python: >=3.10
|
7
|
+
Requires-Dist: graphviz>=0.20.3
|
8
|
+
Requires-Dist: jupyter>=1.1.1
|
9
|
+
Requires-Dist: matplotlib>=3.10.3
|
10
|
+
Requires-Dist: numpy>=2.2.6
|
11
|
+
Requires-Dist: pandas>=2.2.3
|
12
|
+
Requires-Dist: py-cpuinfo>=9.0.0
|
13
|
+
Requires-Dist: pytest>=8.3.5
|
14
|
+
Requires-Dist: scipy>=1.15.3
|
15
|
+
Requires-Dist: timeout-decorator>=0.5.0
|
16
|
+
Requires-Dist: tqdm>=4.67.1
|
17
|
+
Description-Content-Type: text/markdown
|
18
|
+
|
19
|
+
# Count Solutions
|
20
|
+
|
21
|
+
|
22
|
+
# tilingPuzzles
|
23
|
+
|
24
|
+
## Finding a solution
|
25
|
+
|
26
|
+
``` python
|
27
|
+
from tilingpuzzles.games.stone import Stone
|
28
|
+
from tilingpuzzles.games.komino import Komino
|
29
|
+
|
30
|
+
# Degree of the stones
|
31
|
+
# k=5 => Pentomino
|
32
|
+
k=6
|
33
|
+
|
34
|
+
# The Universe of the Coverage problem
|
35
|
+
U="""
|
36
|
+
#######
|
37
|
+
#######
|
38
|
+
###
|
39
|
+
#######
|
40
|
+
#######
|
41
|
+
###
|
42
|
+
######
|
43
|
+
#######
|
44
|
+
#######
|
45
|
+
"""
|
46
|
+
|
47
|
+
U=Stone.from_string(U)
|
48
|
+
|
49
|
+
assert len(U)%k==0
|
50
|
+
|
51
|
+
display(U)
|
52
|
+
|
53
|
+
komi=Komino(U,k=k)
|
54
|
+
# limits: number of times a stone of a certain shape can be used.
|
55
|
+
komi.find_solution(limits=1)
|
56
|
+
```
|
57
|
+
|
58
|
+

|
59
|
+
|
60
|
+

|
61
|
+
|
62
|
+
[frozenset({(7, 7), (8, 6), (8, 7), (8, 8), (9, 7), (9, 8)}),
|
63
|
+
frozenset({(5, 2), (6, 2), (6, 3), (7, 2), (7, 3), (8, 2)}),
|
64
|
+
frozenset({(6, 4), (7, 4), (7, 5), (7, 6), (8, 4), (8, 5)}),
|
65
|
+
frozenset({(8, 3), (9, 2), (9, 3), (9, 4), (9, 5), (9, 6)}),
|
66
|
+
frozenset({(3, 2), (4, 0), (4, 1), (4, 2), (5, 0), (5, 1)}),
|
67
|
+
frozenset({(2, 3), (3, 3), (4, 3), (5, 3), (5, 4), (5, 5)}),
|
68
|
+
frozenset({(2, 4), (3, 4), (4, 4), (4, 5), (4, 6), (5, 6)}),
|
69
|
+
frozenset({(1, 3), (1, 4), (1, 5), (1, 6), (2, 5), (2, 6)}),
|
70
|
+
frozenset({(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)})]
|
71
|
+
|
72
|
+
Calculate the number of Solutions if every Stone can be used a unlimited
|
73
|
+
amount of time
|
74
|
+
|
75
|
+
``` python
|
76
|
+
komi.count_solutions(limits=None,progressLevel=0)
|
77
|
+
```
|
78
|
+
|
79
|
+
115373
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# Count Solutions
|
2
|
+
|
3
|
+
|
4
|
+
# tilingPuzzles
|
5
|
+
|
6
|
+
## Finding a solution
|
7
|
+
|
8
|
+
``` python
|
9
|
+
from tilingpuzzles.games.stone import Stone
|
10
|
+
from tilingpuzzles.games.komino import Komino
|
11
|
+
|
12
|
+
# Degree of the stones
|
13
|
+
# k=5 => Pentomino
|
14
|
+
k=6
|
15
|
+
|
16
|
+
# The Universe of the Coverage problem
|
17
|
+
U="""
|
18
|
+
#######
|
19
|
+
#######
|
20
|
+
###
|
21
|
+
#######
|
22
|
+
#######
|
23
|
+
###
|
24
|
+
######
|
25
|
+
#######
|
26
|
+
#######
|
27
|
+
"""
|
28
|
+
|
29
|
+
U=Stone.from_string(U)
|
30
|
+
|
31
|
+
assert len(U)%k==0
|
32
|
+
|
33
|
+
display(U)
|
34
|
+
|
35
|
+
komi=Komino(U,k=k)
|
36
|
+
# limits: number of times a stone of a certain shape can be used.
|
37
|
+
komi.find_solution(limits=1)
|
38
|
+
```
|
39
|
+
|
40
|
+

|
41
|
+
|
42
|
+

|
43
|
+
|
44
|
+
[frozenset({(7, 7), (8, 6), (8, 7), (8, 8), (9, 7), (9, 8)}),
|
45
|
+
frozenset({(5, 2), (6, 2), (6, 3), (7, 2), (7, 3), (8, 2)}),
|
46
|
+
frozenset({(6, 4), (7, 4), (7, 5), (7, 6), (8, 4), (8, 5)}),
|
47
|
+
frozenset({(8, 3), (9, 2), (9, 3), (9, 4), (9, 5), (9, 6)}),
|
48
|
+
frozenset({(3, 2), (4, 0), (4, 1), (4, 2), (5, 0), (5, 1)}),
|
49
|
+
frozenset({(2, 3), (3, 3), (4, 3), (5, 3), (5, 4), (5, 5)}),
|
50
|
+
frozenset({(2, 4), (3, 4), (4, 4), (4, 5), (4, 6), (5, 6)}),
|
51
|
+
frozenset({(1, 3), (1, 4), (1, 5), (1, 6), (2, 5), (2, 6)}),
|
52
|
+
frozenset({(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)})]
|
53
|
+
|
54
|
+
Calculate the number of Solutions if every Stone can be used a unlimited
|
55
|
+
amount of time
|
56
|
+
|
57
|
+
``` python
|
58
|
+
komi.count_solutions(limits=None,progressLevel=0)
|
59
|
+
```
|
60
|
+
|
61
|
+
115373
|
@@ -0,0 +1,51 @@
|
|
1
|
+
---
|
2
|
+
format: gfm
|
3
|
+
---
|
4
|
+
|
5
|
+
# tilingPuzzles
|
6
|
+
|
7
|
+
## Finding a solution
|
8
|
+
|
9
|
+
|
10
|
+
```{python}
|
11
|
+
from tilingpuzzles.games.stone import Stone
|
12
|
+
from tilingpuzzles.games.komino import Komino
|
13
|
+
|
14
|
+
# Degree of the stones
|
15
|
+
# k=5 => Pentomino
|
16
|
+
k=6
|
17
|
+
|
18
|
+
# The Universe of the Coverage problem
|
19
|
+
U="""
|
20
|
+
#######
|
21
|
+
#######
|
22
|
+
###
|
23
|
+
#######
|
24
|
+
#######
|
25
|
+
###
|
26
|
+
######
|
27
|
+
#######
|
28
|
+
#######
|
29
|
+
"""
|
30
|
+
|
31
|
+
U=Stone.from_string(U)
|
32
|
+
|
33
|
+
assert len(U)%k==0
|
34
|
+
|
35
|
+
display(U)
|
36
|
+
|
37
|
+
komi=Komino(U,k=k)
|
38
|
+
# limits: number of times a stone of a certain shape can be used.
|
39
|
+
komi.find_solution(limits=1)
|
40
|
+
```
|
41
|
+
|
42
|
+
## Count Solutions
|
43
|
+
|
44
|
+
Calculate the number of Solutions if every Stone can be used a unlimited amount of time
|
45
|
+
|
46
|
+
|
47
|
+
```{python}
|
48
|
+
|
49
|
+
komi.count_solutions(limits=None,progressLevel=0)
|
50
|
+
|
51
|
+
```
|
Binary file
|
Binary file
|
@@ -1,7 +1,7 @@
|
|
1
1
|
[project]
|
2
2
|
name = "tilingPuzzles"
|
3
|
-
version = "0.2.
|
4
|
-
description = "
|
3
|
+
version = "0.2.3"
|
4
|
+
description = "finding and counting solutions of tilingpuzzles like Pentomino"
|
5
5
|
readme = "README.md"
|
6
6
|
authors = [
|
7
7
|
{ name = "jonathan graf", email = "jonathangraf@outlook.de" }
|
tilingpuzzles-0.2.1/PKG-INFO
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
Metadata-Version: 2.4
|
2
|
-
Name: tilingPuzzles
|
3
|
-
Version: 0.2.1
|
4
|
-
Summary: Add your description here
|
5
|
-
Author-email: jonathan graf <jonathangraf@outlook.de>
|
6
|
-
Requires-Python: >=3.10
|
7
|
-
Requires-Dist: graphviz>=0.20.3
|
8
|
-
Requires-Dist: jupyter>=1.1.1
|
9
|
-
Requires-Dist: matplotlib>=3.10.3
|
10
|
-
Requires-Dist: numpy>=2.2.6
|
11
|
-
Requires-Dist: pandas>=2.2.3
|
12
|
-
Requires-Dist: py-cpuinfo>=9.0.0
|
13
|
-
Requires-Dist: pytest>=8.3.5
|
14
|
-
Requires-Dist: scipy>=1.15.3
|
15
|
-
Requires-Dist: timeout-decorator>=0.5.0
|
16
|
-
Requires-Dist: tqdm>=4.67.1
|
17
|
-
Description-Content-Type: text/markdown
|
18
|
-
|
19
|
-
# TilingPuzzles
|
20
|
-
|
21
|
-
## Requirements
|
22
|
-
|
23
|
-
```bash
|
24
|
-
pip install uv
|
25
|
-
uv sync
|
26
|
-
```
|
27
|
-
|
28
|
-
## Test
|
29
|
-
|
30
|
-
```bash
|
31
|
-
pytest
|
32
|
-
```
|
33
|
-
|
34
|
-
## Build
|
35
|
-
|
36
|
-
```bash
|
37
|
-
uv build
|
38
|
-
```
|
39
|
-
|
40
|
-
# Demo
|
41
|
-
|
42
|
-
[notebook](Demo.ipynb)
|
tilingpuzzles-0.2.1/README.md
DELETED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/benchmark/data/timingResulsts.csv
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/examples/rectangularPentomino.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/examples/tests/test_scaledStones.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/tests/test_realisations.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/solvers/tests/test_komino_solver.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|