numberlink 0.1.0__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.
Files changed (62) hide show
  1. numberlink/__init__.py +37 -0
  2. numberlink/__main__.py +19 -0
  3. numberlink/assets/levels/5x5_ha_4c_016.sol.json +1 -0
  4. numberlink/assets/levels/5x5_ha_4c_016.txt +5 -0
  5. numberlink/assets/levels/5x5_ha_4c_026.sol.json +1 -0
  6. numberlink/assets/levels/5x5_ha_4c_026.txt +5 -0
  7. numberlink/assets/levels/5x5_ra_4c_011.sol.json +1 -0
  8. numberlink/assets/levels/5x5_ra_4c_011.txt +5 -0
  9. numberlink/assets/levels/5x5_ra_4c_021.sol.json +1 -0
  10. numberlink/assets/levels/5x5_ra_4c_021.txt +5 -0
  11. numberlink/assets/levels/6x6_ha_5c_012.sol.json +1 -0
  12. numberlink/assets/levels/6x6_ha_5c_012.txt +6 -0
  13. numberlink/assets/levels/6x6_ha_5c_022.sol.json +1 -0
  14. numberlink/assets/levels/6x6_ha_5c_022.txt +6 -0
  15. numberlink/assets/levels/6x6_ra_5c_017.sol.json +1 -0
  16. numberlink/assets/levels/6x6_ra_5c_017.txt +6 -0
  17. numberlink/assets/levels/6x6_ra_5c_027.sol.json +1 -0
  18. numberlink/assets/levels/6x6_ra_5c_027.txt +6 -0
  19. numberlink/assets/levels/7x7_ha_6c_018.sol.json +1 -0
  20. numberlink/assets/levels/7x7_ha_6c_018.txt +7 -0
  21. numberlink/assets/levels/7x7_ha_6c_028.sol.json +1 -0
  22. numberlink/assets/levels/7x7_ha_6c_028.txt +7 -0
  23. numberlink/assets/levels/7x7_ra_6c_013.sol.json +1 -0
  24. numberlink/assets/levels/7x7_ra_6c_013.txt +7 -0
  25. numberlink/assets/levels/7x7_ra_6c_023.sol.json +1 -0
  26. numberlink/assets/levels/7x7_ra_6c_023.txt +7 -0
  27. numberlink/assets/levels/8x8_ha_6c_014.sol.json +1 -0
  28. numberlink/assets/levels/8x8_ha_6c_014.txt +8 -0
  29. numberlink/assets/levels/8x8_ha_6c_024.sol.json +1 -0
  30. numberlink/assets/levels/8x8_ha_6c_024.txt +8 -0
  31. numberlink/assets/levels/8x8_ra_6c_019.sol.json +1 -0
  32. numberlink/assets/levels/8x8_ra_6c_019.txt +8 -0
  33. numberlink/assets/levels/8x8_ra_6c_029.sol.json +1 -0
  34. numberlink/assets/levels/8x8_ra_6c_029.txt +8 -0
  35. numberlink/assets/levels/9x9_ha_7c_020.sol.json +1 -0
  36. numberlink/assets/levels/9x9_ha_7c_020.txt +9 -0
  37. numberlink/assets/levels/9x9_ha_7c_030.sol.json +1 -0
  38. numberlink/assets/levels/9x9_ha_7c_030.txt +9 -0
  39. numberlink/assets/levels/9x9_ra_7c_015.sol.json +1 -0
  40. numberlink/assets/levels/9x9_ra_7c_015.txt +9 -0
  41. numberlink/assets/levels/9x9_ra_7c_025.sol.json +1 -0
  42. numberlink/assets/levels/9x9_ra_7c_025.txt +9 -0
  43. numberlink/assets/numberlink-logo.png +0 -0
  44. numberlink/cli.py +489 -0
  45. numberlink/config.py +237 -0
  46. numberlink/env.py +1441 -0
  47. numberlink/generator.py +1308 -0
  48. numberlink/level_setup.py +524 -0
  49. numberlink/levels.py +302 -0
  50. numberlink/main.py +24 -0
  51. numberlink/number_render.py +381 -0
  52. numberlink/py.typed +0 -0
  53. numberlink/registration.py +62 -0
  54. numberlink/render_utils.py +76 -0
  55. numberlink/types.py +137 -0
  56. numberlink/vector_env.py +1406 -0
  57. numberlink/viewer.py +1425 -0
  58. numberlink-0.1.0.dist-info/METADATA +203 -0
  59. numberlink-0.1.0.dist-info/RECORD +62 -0
  60. numberlink-0.1.0.dist-info/WHEEL +4 -0
  61. numberlink-0.1.0.dist-info/entry_points.txt +7 -0
  62. numberlink-0.1.0.dist-info/licenses/LICENSE +21 -0
numberlink/__init__.py ADDED
@@ -0,0 +1,37 @@
1
+ """NumberLink Environment Package for Reinforcement Learning, built on Gymnasium.
2
+
3
+ The package exposes configuration dataclasses, environment classes, and the ``LEVELS`` mapping of built-in levels.
4
+ Import these symbols for your use or to register the environment using :func:`register_numberlink_v0`.
5
+
6
+ By default the package does not automatically register Gymnasium ids on import. Library consumers should prefer
7
+ explicit registration via ``numberlink.register_numberlink_v0()``. When installed from PyPI the package also
8
+ exposes packaging entry-points (``project.entry-points."gymnasium.envs"``) so Gymnasium can auto-discover and
9
+ load the environment without an explicit registration call. See the project ``pyproject.toml`` for the
10
+ ``gymnasium.envs`` entry-point names.
11
+ """
12
+
13
+ from __future__ import annotations
14
+
15
+ from .config import GeneratorConfig, RenderConfig, RewardConfig, VariantConfig
16
+ from .env import NumberLinkRGBEnv
17
+ from .levels import LEVELS
18
+ from .registration import register_numberlink_v0
19
+ from .vector_env import NumberLinkRGBVectorEnv
20
+ from .viewer import NumberLinkViewer
21
+
22
+ __version__ = "0.1.0"
23
+ __author__ = "Misagh Soltani"
24
+
25
+ __all__: list[str] = [
26
+ "__version__",
27
+ "__author__",
28
+ "NumberLinkRGBEnv",
29
+ "register_numberlink_v0",
30
+ "GeneratorConfig",
31
+ "VariantConfig",
32
+ "RewardConfig",
33
+ "RenderConfig",
34
+ "LEVELS",
35
+ "NumberLinkViewer",
36
+ "NumberLinkRGBVectorEnv",
37
+ ]
numberlink/__main__.py ADDED
@@ -0,0 +1,19 @@
1
+ """Module entry for the package command-line interface.
2
+
3
+ Running ``python -m numberlink`` invokes the CLI implemented in :mod:`numberlink.cli`.
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+ import sys
9
+
10
+ from .cli import main as cli_main
11
+
12
+
13
+ def run() -> None:
14
+ """Entrypoint used by the ``-m`` switch."""
15
+ raise SystemExit(cli_main(sys.argv[1:]))
16
+
17
+
18
+ if __name__ == "__main__":
19
+ run()
@@ -0,0 +1 @@
1
+ [[[1,3],[1,2],[2,2]],[[0,0],[0,1],[0,2],[0,3],[0,4]],[[1,4],[2,4],[3,4],[4,4],[4,3],[4,2],[4,1],[4,0],[3,0],[2,0]],[[1,0],[1,1],[2,1],[3,1],[3,2],[3,3],[2,3]]]
@@ -0,0 +1,5 @@
1
+ B...B
2
+ D..AC
3
+ C.AD.
4
+ .....
5
+ .....
@@ -0,0 +1 @@
1
+ [[[0,0],[0,1],[1,1]],[[0,2],[0,3],[0,4],[1,4],[2,4],[3,4],[4,4],[4,3],[4,2],[4,1]],[[1,2],[2,2],[2,1],[2,0],[1,0]],[[4,0],[3,0],[3,1],[3,2],[3,3],[2,3],[1,3]]]
@@ -0,0 +1,5 @@
1
+ A.B..
2
+ CACD.
3
+ .....
4
+ .....
5
+ DB...
@@ -0,0 +1 @@
1
+ [[[3,1],[2,1],[1,1],[0,1]],[[3,0],[4,0],[4,1],[4,2]],[[1,4],[2,4],[3,4],[4,4],[4,3]],[[0,4],[0,3],[1,3],[2,3],[2,2],[1,2]]]
@@ -0,0 +1,5 @@
1
+ .A..D
2
+ ..D.C
3
+ .....
4
+ BA...
5
+ ..BC.
@@ -0,0 +1 @@
1
+ [[[1,0],[2,0],[3,0],[4,0]],[[3,1],[3,2],[3,3],[4,3],[4,4]],[[2,4],[2,3],[2,2],[2,1]],[[0,0],[0,1],[0,2],[0,3]]]
@@ -0,0 +1,5 @@
1
+ D..D.
2
+ A....
3
+ .C..C
4
+ .B...
5
+ A...B
@@ -0,0 +1 @@
1
+ [[[3,2],[2,2],[2,3]],[[5,5],[5,4],[5,3],[5,2],[5,1],[5,0],[4,0],[3,0],[2,0],[1,0],[0,0],[0,1]],[[1,2],[1,3],[1,4],[2,4],[3,4],[3,3]],[[4,1],[4,2],[4,3],[4,4],[4,5],[3,5],[2,5],[1,5],[0,5],[0,4],[0,3],[0,2]],[[1,1],[2,1],[3,1]]]
@@ -0,0 +1,6 @@
1
+ .BD...
2
+ .EC...
3
+ ...A..
4
+ .EAC..
5
+ .D....
6
+ .....B
@@ -0,0 +1 @@
1
+ [[[4,1],[3,1],[3,0],[2,0],[1,0],[0,0],[0,1],[0,2],[0,3],[0,4],[0,5],[1,5],[2,5],[3,5],[4,5],[5,5],[5,4],[5,3],[4,3]],[[4,4],[3,4],[3,3],[3,2],[2,2]],[[2,1],[1,1],[1,2],[1,3]],[[4,2],[5,2],[5,1],[5,0],[4,0]],[[1,4],[2,4],[2,3]]]
@@ -0,0 +1,6 @@
1
+ ......
2
+ ...CE.
3
+ .CBE..
4
+ ......
5
+ DADAB.
6
+ ......
@@ -0,0 +1 @@
1
+ [[[2,5],[1,5],[1,4],[1,3],[0,3]],[[0,2],[0,1],[1,1],[2,1]],[[4,3],[3,3],[3,2],[3,1]],[[3,0],[4,0],[4,1],[5,1]],[[5,3],[5,4],[4,4],[4,5],[3,5],[2,5],[2,4]]]
@@ -0,0 +1,6 @@
1
+ ..BA..
2
+ ......
3
+ .B..EA
4
+ DC....
5
+ ...C..
6
+ .D.E..
@@ -0,0 +1 @@
1
+ [[[0,0],[1,0],[2,0],[3,0],[3,1],[2,1],[2,2]],[[3,0],[4,0],[4,1],[4,2],[5,2],[5,1]],[[2,4],[1,4],[1,3],[1,2],[1,1]],[[0,5],[0,4],[0,3],[0,2]],[[5,3],[4,3],[3,3],[3,4]]]
@@ -0,0 +1,6 @@
1
+ A.D..D
2
+ .C....
3
+ ..A.C.
4
+ B...E.
5
+ ......
6
+ .B.E..
@@ -0,0 +1 @@
1
+ [[[1,5],[0,5],[0,6]],[[2,3],[1,3],[1,2],[1,1],[2,1],[3,1],[4,1],[5,1],[5,2],[5,3],[5,4]],[[3,6],[4,6],[4,5],[5,5]],[[5,6],[6,6],[6,5],[6,4],[6,3],[6,2],[6,1],[6,0],[5,0],[4,0],[3,0],[2,0],[1,0],[0,0],[0,1],[0,2],[0,3],[0,4],[1,4],[2,4],[3,4],[3,3],[3,2],[2,2]],[[1,6],[2,6],[2,5],[3,5]],[[4,4],[4,3],[4,2]]]
@@ -0,0 +1,7 @@
1
+ ......A
2
+ .....AE
3
+ ..DB...
4
+ .....EC
5
+ ..F.F..
6
+ ....BCD
7
+ .......
@@ -0,0 +1 @@
1
+ [[[2,3],[3,3],[3,4]],[[6,2],[5,2],[5,3],[5,4],[5,5],[4,5]],[[2,4],[2,5],[3,5]],[[6,1],[5,1],[4,1],[3,1],[2,1],[1,1],[1,2],[1,3],[1,4],[1,5],[1,6],[2,6],[3,6],[4,6],[5,6],[6,6],[6,5],[6,4],[6,3]],[[0,6],[0,5],[0,4],[0,3],[0,2],[0,1],[0,0],[1,0],[2,0],[3,0],[4,0],[5,0],[6,0]],[[4,4],[4,3],[4,2],[3,2],[2,2]]]
@@ -0,0 +1,7 @@
1
+ ......E
2
+ .......
3
+ ..FAC..
4
+ ....AC.
5
+ ....FB.
6
+ .......
7
+ EDBD...
@@ -0,0 +1 @@
1
+ [[[2,5],[3,5],[3,6],[4,6]],[[0,6],[0,5],[1,5],[1,6],[2,6],[2,5],[2,4]],[[1,2],[0,2],[0,3],[0,4]],[[6,0],[6,1],[6,2],[6,3],[5,3]],[[0,0],[0,1],[1,1],[1,2],[2,2],[3,2]],[[4,1],[3,1],[2,1],[2,0]]]
@@ -0,0 +1,7 @@
1
+ E...C.B
2
+ ..C....
3
+ F...BA.
4
+ ..E....
5
+ .F....A
6
+ ...D...
7
+ D......
@@ -0,0 +1 @@
1
+ [[[5,4],[6,4],[6,5],[6,6]],[[3,6],[3,5],[4,5],[5,5]],[[4,3],[3,3],[3,4],[2,4]],[[6,1],[6,2],[6,3],[5,3]],[[4,2],[5,2],[5,1],[5,0]],[[5,6],[4,6],[3,6],[2,6]]]
@@ -0,0 +1,7 @@
1
+ .......
2
+ .......
3
+ ....C.F
4
+ ......B
5
+ ..EC...
6
+ E..DABF
7
+ .D....A
@@ -0,0 +1 @@
1
+ [[[7,5],[6,5],[6,6],[5,6],[4,6],[3,6],[2,6],[1,6],[1,5],[1,4],[1,3],[1,2]],[[1,1],[2,1],[3,1],[4,1],[5,1],[6,1],[6,2],[6,3],[6,4],[5,4],[5,5],[4,5],[3,5]],[[7,4],[7,3],[7,2],[7,1],[7,0],[6,0],[5,0],[4,0],[3,0],[2,0],[1,0],[0,0],[0,1],[0,2],[0,3],[0,4],[0,5],[0,6],[0,7],[1,7],[2,7],[3,7],[4,7],[5,7],[6,7],[7,7],[7,6]],[[2,5],[2,4],[3,4],[4,4],[4,3]],[[5,3],[5,2],[4,2],[3,2]],[[2,2],[2,3],[3,3]]]
@@ -0,0 +1,8 @@
1
+ ........
2
+ .BA.....
3
+ ..F..D..
4
+ ..EF.B..
5
+ ...D....
6
+ ...E....
7
+ ........
8
+ ....CAC.
@@ -0,0 +1 @@
1
+ [[[0,6],[0,5],[0,4],[0,3],[0,2],[0,1],[1,1],[2,1],[3,1],[4,1],[5,1],[6,1],[6,2],[6,3],[6,4],[6,5],[6,6],[5,6],[4,6],[3,6],[2,6]],[[1,6],[1,5],[2,5],[3,5],[4,5],[5,5],[5,4],[5,3],[5,2],[4,2]],[[4,3],[4,4],[3,4]],[[0,0],[1,0],[2,0],[3,0],[4,0],[5,0],[6,0],[7,0],[7,1],[7,2],[7,3],[7,4],[7,5],[7,6],[7,7],[6,7],[5,7],[4,7],[3,7],[2,7],[1,7],[0,7]],[[1,4],[2,4],[2,3]],[[3,3],[3,2],[2,2],[1,2],[1,3]]]
@@ -0,0 +1,8 @@
1
+ D.....AD
2
+ ...FE.B.
3
+ ...E..A.
4
+ ...FC...
5
+ ..BC....
6
+ ........
7
+ ........
8
+ ........
@@ -0,0 +1 @@
1
+ [[[3,7],[3,6],[2,6],[1,6],[1,7],[0,7]],[[7,0],[6,0],[5,0],[5,1]],[[7,6],[6,6],[6,7],[5,7],[5,6],[5,5]],[[7,7],[7,6],[7,5],[6,5]],[[4,2],[3,2],[3,1],[3,0]],[[2,2],[2,3],[3,3],[4,3],[4,4],[3,4]]]
@@ -0,0 +1,8 @@
1
+ .......A
2
+ ........
3
+ ..F.....
4
+ E...F..A
5
+ ..E.....
6
+ .B...C..
7
+ .....D..
8
+ B.....CD
@@ -0,0 +1 @@
1
+ [[[5,1],[4,1],[3,1],[3,2],[4,2],[4,3],[3,3],[3,4]],[[7,7],[6,7],[5,7],[5,6]],[[0,0],[0,1],[1,1],[2,1]],[[0,6],[1,6],[2,6],[2,7]],[[4,5],[3,5],[3,6],[4,6],[4,7],[3,7]],[[7,3],[7,4],[6,4],[5,4]]]
@@ -0,0 +1,8 @@
1
+ C.....D.
2
+ ........
3
+ .C.....D
4
+ ....A..E
5
+ .....E..
6
+ .A..F.B.
7
+ ........
8
+ ...F...B
@@ -0,0 +1 @@
1
+ [[[3,5],[3,4],[4,4]],[[0,1],[0,0],[1,0],[2,0],[3,0],[4,0],[5,0],[6,0],[7,0],[8,0],[8,1],[8,2],[8,3],[8,4],[8,5],[8,6],[7,6]],[[0,2],[0,3],[0,4],[0,5],[0,6],[0,7],[0,8],[1,8],[2,8],[3,8],[4,8],[5,8],[6,8],[7,8],[8,8]],[[2,6],[2,5],[2,4],[2,3],[3,3],[4,3],[5,3],[5,4],[5,5],[4,5]],[[8,7],[7,7],[6,7],[5,7],[4,7],[3,7],[2,7],[1,7],[1,6],[1,5],[1,4],[1,3],[1,2],[1,1]],[[3,2],[4,2],[5,2],[6,2],[6,3],[6,4],[6,5],[6,6],[5,6],[4,6],[3,6]],[[7,5],[7,4],[7,3],[7,2],[7,1],[6,1],[5,1],[4,1],[3,1],[2,1],[2,2]]]
@@ -0,0 +1,9 @@
1
+ .BC......
2
+ .E.......
3
+ ..G...D..
4
+ ..F..AF..
5
+ ....AD...
6
+ .........
7
+ .........
8
+ .....GB..
9
+ .......EC
@@ -0,0 +1 @@
1
+ [[[5,3],[4,3],[4,2],[3,2]],[[7,7],[6,7],[5,7],[5,8],[4,8]],[[3,8],[2,8],[2,7],[2,6],[2,5],[2,4],[3,4],[4,4],[5,4],[6,4],[6,3],[6,2],[5,2]],[[4,7],[4,6],[5,6],[6,6],[7,6],[8,6],[8,5],[8,4],[8,3],[8,2],[8,1],[8,0],[7,0],[6,0],[5,0],[4,0],[3,0],[2,0],[1,0],[0,0],[0,1],[0,2],[0,3],[0,4],[0,5],[0,6],[0,7]],[[3,3],[2,3],[2,2]],[[0,8],[1,8],[1,7],[1,6],[1,5],[1,4],[1,3],[1,2],[1,1],[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[7,2],[7,3],[7,4],[7,5],[6,5],[5,5],[4,5],[3,5],[3,6],[3,7]],[[6,8],[7,8],[8,8],[8,7]]]
@@ -0,0 +1,9 @@
1
+ .......DF
2
+ .........
3
+ ..E......
4
+ ..AE...FC
5
+ .......DB
6
+ ..CA.....
7
+ ........G
8
+ .......B.
9
+ .......G.
@@ -0,0 +1 @@
1
+ [[[5,0],[4,0],[3,0],[3,1],[2,1],[1,1],[1,2]],[[6,1],[5,1],[4,1],[4,2],[3,2],[2,2]],[[7,3],[7,2],[6,2],[6,1],[6,0],[7,0],[8,0]],[[5,5],[5,4],[5,3],[5,2]],[[0,7],[0,8],[1,8],[2,8],[3,8],[3,7],[4,7],[4,8]],[[8,7],[7,7],[6,7],[6,6],[6,5]],[[6,2],[6,3],[6,4],[7,4],[7,5]]]
@@ -0,0 +1,9 @@
1
+ .......E.
2
+ ..A......
3
+ ..B......
4
+ .........
5
+ ........E
6
+ A.D..D...
7
+ .BG..F...
8
+ ...C.G...
9
+ C......F.
@@ -0,0 +1 @@
1
+ [[[4,4],[4,3],[4,2],[4,1]],[[8,2],[7,2],[7,1],[7,0]],[[1,4],[1,3],[1,2],[2,2],[2,1],[2,0]],[[6,2],[5,2],[5,1],[5,0]],[[1,6],[1,7],[0,7],[0,6],[0,5],[0,4],[0,3]],[[5,8],[6,8],[6,7],[6,6]],[[1,3],[2,3],[3,3],[3,4],[3,5],[4,5],[4,6],[4,7]]]
@@ -0,0 +1,9 @@
1
+ ...E.....
2
+ ...GC.E..
3
+ C........
4
+ .........
5
+ .A..A..G.
6
+ D.......F
7
+ ..D...F..
8
+ B........
9
+ ..B......
Binary file