diff options
author | Aki <please@ignore.pl> | 2024-11-07 18:30:16 +0100 |
---|---|---|
committer | Aki <please@ignore.pl> | 2024-11-07 18:35:55 +0100 |
commit | d4dd6baae7ec7d4c02d978762cf4dd99b83ec04a (patch) | |
tree | 440dd4a098260a556a7f0a1f5edab46d36af43f5 | |
parent | 2eee005702d1be7e0391399f203cdbd9d7d5a42a (diff) | |
download | noita-eyes-d4dd6baae7ec7d4c02d978762cf4dd99b83ec04a.zip noita-eyes-d4dd6baae7ec7d4c02d978762cf4dd99b83ec04a.tar.gz noita-eyes-d4dd6baae7ec7d4c02d978762cf4dd99b83ec04a.tar.bz2 |
Dump automaton to a graphviz digraph
-rw-r--r-- | .gitignore | 2 | ||||
-rwxr-xr-x | dot.lua | 31 |
2 files changed, 33 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b38f805 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.dot +*.png @@ -0,0 +1,31 @@ +#!/usr/bin/env lua +local automaton = require "automaton" +local init = {} +for i=1, 25 do + table.insert(init, i) +end +init = automaton(init) + + +local function dump_edges (state, prefix, color) + prefix = prefix or "" + color = color or "gray" + io.write(prefix, "edge [color=", color, "];\n") + for i, v in ipairs(state) do + io.write(prefix, string.format("%d -> %d;\n", v, i)) + end +end + + +print[[ +digraph { + node [style=filled]; + node [fillcolor="#ded"] 1 2 3 [fillcolor=green] 4 5 6 7 8 9; + node [fillcolor="#dde"] 10 11 12 13 14 15 16; + node [fillcolor="#fed"] 17 18 19 [fillcolor=red] 20 21 22 23 24 25;]] +dump_edges(init:left(), "\t", "red") +dump_edges(init:right(), "\t", "blue") +dump_edges(init:pivot(), "\t", "aqua") +dump_edges(init:up(), "\t", "purple") +dump_edges(init:down(), "\t", "darkgreen") +print"}" |