]> Untitled Git - axy/ft/a-maze-ing.git/commitdiff
Config refactor and more errors
authorAxy <gilliardmarthey.axel@gmail.com>
Sun, 29 Mar 2026 22:38:59 +0000 (00:38 +0200)
committerAxy <gilliardmarthey.axel@gmail.com>
Sun, 29 Mar 2026 22:38:59 +0000 (00:38 +0200)
.gitignore
Makefile
a_maze_ing.py
bad.conf [new file with mode: 0644]
complex.conf [new file with mode: 0644]
example.conf [deleted file]
minimal.conf [new file with mode: 0644]
minimal_visual.conf [new file with mode: 0644]

index a38882082f0a68734fae9af881fce9362f4482e1..bea58dd87797fe77a1f3014ed72969368d6cbfb9 100644 (file)
@@ -4,4 +4,4 @@ out.prof
 prof.svg
 tmp
 .venv
-test
+maze.txt
index 13a84d58fa14346077139175d4d247e56c8ca78e..b4f075e9a2c982c233065d9ce9e3ce3c7e1bc6ea 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -13,12 +13,14 @@ run-prof:
        flameprof out.prof > prof.svg
 
 run:
-       poetry run python a_maze_ing.py
+       poetry run python a_maze_ing.py minimal_visual.conf
 
 build:
        poetry build -o .
 
 clean:
+       # sketchy rf rm
+       rm -rf __pycache__ **/__pycache__
 
 lint:
        poetry run flake8 .
index 995b89953852283175a9f8336372647566aa063f..14544c9c616e3264936213fc41f41f4dad2734a7 100644 (file)
@@ -1,4 +1,4 @@
-from sys import stderr
+from sys import argv, stderr
 from typing import Never
 from mazegen.config.parser_combinator import ParseError
 from mazegen.display.observer import MazeRegenerate, TTYTracker
@@ -16,16 +16,28 @@ from mazegen.config.config_parser import Config, ConfigError
 from mazegen.maze.output import format_output
 import random
 
-config_filename = "./example.conf"
-config_str = open(config_filename).read()
-
 
 def error(s: str) -> Never:
-    print("Error:", file=stderr)
+    print("Error:\n", file=stderr)
     print(s, end="", file=stderr)
     exit(1)
 
 
+if len(argv) != 2:
+    error(
+        "  Invalid argument count, usage:\n"
+        + "\n"
+        + "    > python a_maze_ing.py <filename>\n"
+        + "\n"
+    )
+
+config_filename = argv[1]
+try:
+    config_str = open(config_filename).read()
+except IOError:
+    error(f"  Failed to read file {config_filename}\n\n")
+
+
 try:
     config = Config.parse(config_str)
 except ParseError as e:
diff --git a/bad.conf b/bad.conf
new file mode 100644 (file)
index 0000000..a25414b
--- /dev/null
+++ b/bad.conf
@@ -0,0 +1,7 @@
+WIDTH=25
+HEIGHT=25
+ENTRY=1,1
+EXIT=24,24,
+OUTPUT_FILE=maze.txt
+PERFECT=True
+SEED=111
diff --git a/complex.conf b/complex.conf
new file mode 100644 (file)
index 0000000..154c8b8
--- /dev/null
@@ -0,0 +1,62 @@
+WIDTH=100
+HEIGHT=100
+ENTRY=1,1
+EXIT=24,24
+OUTPUT_FILE=test
+PERFECT=True
+VISUAL=True
+SCREENSAVER=True
+SEED=111
+
+TILEMAP_WALL_SIZE=2,1
+TILEMAP_CELL_SIZE=4,2
+
+TILEMAP_FULL="{1000,1000,1000:1000,1000,1000}######"
+TILEMAP_FULL="{1000,1000,1000:1000,1000,1000}######"
+TILEMAP_FULL="{1000,1000,1000:1000,1000,1000}######"
+
+TILEMAP_FULL=1"{100,1000,1000:1000,1000,1000}███{1000,100,1000:1000,1000,1000}███"
+TILEMAP_FULL=1"{100,1000,1000:1000,1000,1000}######"
+TILEMAP_FULL=1"{100,1000,1000:1000,1000,1000}######"
+
+TILEMAP_PATH="{100,100,1000:100,100,1000}      "
+TILEMAP_PATH="{100,100,1000:100,100,1000}      "
+TILEMAP_PATH="{100,100,1000:100,100,1000}      "
+
+TILEMAP_ENTRY="{1000,1000,1000:100,100,1000}######"
+TILEMAP_ENTRY="{1000,1000,1000:100,100,1000}######"
+TILEMAP_ENTRY="{1000,1000,1000:100,100,1000}######"
+
+TILEMAP_EXIT="{0,0,0:100,100,1000}######"
+TILEMAP_EXIT="{0,0,0:100,100,1000}######"
+TILEMAP_EXIT="{0,0,0:100,100,1000}######"
+
+TILEMAP_EMPTY="{0,0,0:0,0,0}      "
+TILEMAP_EMPTY="{0,0,0:0,0,0}      "
+TILEMAP_EMPTY="{0,0,0:0,0,0}      "
+
+TILEMAP_BACKGROUND_SIZE=8,4
+TILEMAP_BACKGROUND="{1000,1000,1000:0,0,0}##      "
+TILEMAP_BACKGROUND="{1000,1000,1000:0,0,0}######  "
+TILEMAP_BACKGROUND="{1000,1000,1000:0,0,0}    ##  "
+TILEMAP_BACKGROUND="{1000,1000,1000:0,0,0}##  ##  "
+TILEMAP_BACKGROUND=1"{100,1000,1000:0,0,0}##      "
+TILEMAP_BACKGROUND=1"{100,1000,1000:0,0,0}######  "
+TILEMAP_BACKGROUND=1"{100,1000,1000:0,0,0}    ##  "
+TILEMAP_BACKGROUND=1"{100,1000,1000:0,0,0}##  ##  "
+
+TILEMAP_BOX_SIZE=1,1
+TILEMAP_BOX_BRIDGE_SIZE=1,1
+TILEMAP_BOX="{1000,500,500:0,0,0}+-++"
+TILEMAP_BOX="{1000,500,500:0,0,0}| ||"
+TILEMAP_BOX="{1000,500,500:0,0,0}+-++"
+TILEMAP_BOX="{1000,500,500:0,0,0}+-++"
+
+MAZE_PATTERN=" #   # "
+MAZE_PATTERN="  # #  "
+MAZE_PATTERN="   #   "
+MAZE_PATTERN="       "
+MAZE_PATTERN=" #  #  "
+MAZE_PATTERN="       "
+MAZE_PATTERN="#  #  #"
+MAZE_PATTERN=" ## ## "
diff --git a/example.conf b/example.conf
deleted file mode 100644 (file)
index 30b2df2..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-WIDTH=100
-HEIGHT=100
-ENTRY=1,1
-EXIT=24,24
-OUTPUT_FILE=test
-PERFECT=True
-VISUAL=True
-SCREENSAVER=False
-SEED=111
-
-#TILEMAP_WALL_SIZE=2,1
-#TILEMAP_CELL_SIZE=4,2
-#
-#TILEMAP_FULL="{1000,1000,1000:1000,1000,1000}######"
-#TILEMAP_FULL="{1000,1000,1000:1000,1000,1000}######"
-#TILEMAP_FULL="{1000,1000,1000:1000,1000,1000}######"
-#
-#TILEMAP_FULL=1"{100,1000,1000:1000,1000,1000}███{1000,100,1000:1000,1000,1000}███"
-#TILEMAP_FULL=1"{100,1000,1000:1000,1000,1000}######"
-#TILEMAP_FULL=1"{100,1000,1000:1000,1000,1000}######"
-#
-#TILEMAP_PATH="{100,100,1000:100,100,1000}      "
-#TILEMAP_PATH="{100,100,1000:100,100,1000}      "
-#TILEMAP_PATH="{100,100,1000:100,100,1000}      "
-#
-#TILEMAP_ENTRY="{100,100,1000:1000,1000,1000}######"
-#TILEMAP_ENTRY="{100,100,1000:1000,1000,1000}######"
-#TILEMAP_ENTRY="{100,100,1000:1000,1000,1000}######"
-#
-#TILEMAP_EXIT="{100,100,1000:0,0,0}######"
-#TILEMAP_EXIT="{100,100,1000:0,0,0}######"
-#TILEMAP_EXIT="{100,100,1000:0,0,0}######"
-#
-#TILEMAP_EMPTY="{0,0,0:0,0,0}      "
-#TILEMAP_EMPTY="{0,0,0:0,0,0}      "
-#TILEMAP_EMPTY="{0,0,0:0,0,0}      "
-#
-#TILEMAP_BACKGROUND_SIZE=8,4
-#TILEMAP_BACKGROUND="{1000,1000,1000:0,0,0}##      "
-#TILEMAP_BACKGROUND="{1000,1000,1000:0,0,0}######  "
-#TILEMAP_BACKGROUND="{1000,1000,1000:0,0,0}    ##  "
-#TILEMAP_BACKGROUND="{1000,1000,1000:0,0,0}##  ##  "
-#TILEMAP_BACKGROUND=1"{100,1000,1000:0,0,0}##      "
-#TILEMAP_BACKGROUND=1"{100,1000,1000:0,0,0}######  "
-#TILEMAP_BACKGROUND=1"{100,1000,1000:0,0,0}    ##  "
-#TILEMAP_BACKGROUND=1"{100,1000,1000:0,0,0}##  ##  "
-#
-#TILEMAP_BOX_SIZE=1,1
-#TILEMAP_BOX_BRIDGE_SIZE=1,1
-#TILEMAP_BOX="{1000,500,500:0,0,0}+-++"
-#TILEMAP_BOX="{1000,500,500:0,0,0}| ||"
-#TILEMAP_BOX="{1000,500,500:0,0,0}+-++"
-#TILEMAP_BOX="{1000,500,500:0,0,0}+-++"
-#
-#MAZE_PATTERN=" #   # "
-#MAZE_PATTERN="  # #  "
-#MAZE_PATTERN="   #   "
-#MAZE_PATTERN="       "
-#MAZE_PATTERN=" #  #  "
-#MAZE_PATTERN="       "
-#MAZE_PATTERN="#  #  #"
-#MAZE_PATTERN=" ## ## "
diff --git a/minimal.conf b/minimal.conf
new file mode 100644 (file)
index 0000000..60a44b6
--- /dev/null
@@ -0,0 +1,7 @@
+WIDTH=25
+HEIGHT=25
+ENTRY=1,1
+EXIT=24,24
+OUTPUT_FILE=maze.txt
+PERFECT=True
+SEED=111
diff --git a/minimal_visual.conf b/minimal_visual.conf
new file mode 100644 (file)
index 0000000..3e393c6
--- /dev/null
@@ -0,0 +1,8 @@
+WIDTH=25
+HEIGHT=25
+ENTRY=1,1
+EXIT=24,24
+OUTPUT_FILE=maze.txt
+PERFECT=True
+VISUAL=True
+SEED=621