From: Eric S. Raymond Date: Wed, 6 Apr 2022 23:11:09 +0000 (-0400) Subject: Improve the maze graph. X-Git-Tag: 1.10~1 X-Git-Url: https://jxself.org/git/?a=commitdiff_plain;h=2df951ba6041023122137137146427e352902ba1;p=open-adventure.git Improve the maze graph. --- diff --git a/make_graph.py b/make_graph.py index cc92964..e90dc5a 100755 --- a/make_graph.py +++ b/make_graph.py @@ -7,9 +7,9 @@ import sys, yaml -def allalike(loc): +def allalike(loc, dest): "Select out loci related to the Maze All Alike" - return (loc == "LOC_MISTWEST") or ("ALIKE" in loc) or ("MAZEEND" in loc) or ("STALACTITE" in loc) + return ("ALIKE" in loc) or ("MAZEEND" in loc) or ("STALACTITE" in loc) or (loc == "LOC_MISTWEST" and "ALIKE" in dest) def abbreviate(d): m = {"NORTH":"N", "EAST":"E", "SOUTH":"S", "WEST":"W", "UPWAR":"U", "DOWN":"D"} @@ -21,8 +21,6 @@ if __name__ == "__main__": print("digraph G {") for (loc, attrs) in db["locations"]: - if not allalike(loc): - continue travel = attrs["travel"] if len(travel) > 0: for dest in travel: @@ -31,7 +29,10 @@ if __name__ == "__main__": continue action = dest["action"] if action[0] == "goto": - arc = "%s -> %s" % (loc[4:], action[1][4:]) + dest = action[1] + if not allalike(loc, dest): + continue; + arc = "%s -> %s" % (loc[4:], dest[4:]) label=",".join(verbs).lower() if len(label) > 0: arc += ' [label="%s"]' % label