prof.svg
tmp
.venv
-test
+maze.txt
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 .
-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
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:
--- /dev/null
+WIDTH=25
+HEIGHT=25
+ENTRY=1,1
+EXIT=24,24,
+OUTPUT_FILE=maze.txt
+PERFECT=True
+SEED=111
--- /dev/null
+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=" ## ## "
+++ /dev/null
-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=" ## ## "
--- /dev/null
+WIDTH=25
+HEIGHT=25
+ENTRY=1,1
+EXIT=24,24
+OUTPUT_FILE=maze.txt
+PERFECT=True
+SEED=111
--- /dev/null
+WIDTH=25
+HEIGHT=25
+ENTRY=1,1
+EXIT=24,24
+OUTPUT_FILE=maze.txt
+PERFECT=True
+VISUAL=True
+SEED=621