- compare-graphs world agent-one title-one agent-two title-two composite-fileprocedure
- compare-graphs world agent-one title-one agent-two title-two composite-file steps width height font-sizeprocedure
Simulate two agents in a given world and animate their progress side-by-side; see, for instance, <http://youtu.be/B28ay_zSnoY>.
Requires Graphviz.
- world
- The world to simulate
- agent-one
- The first inhabiting agent
- title-one
- Title of the first agent
- agent-two
- The second inhabiting agent
- title-two
- Title of the second agent
- composite-file
- Base-name of the composite animation
(define compare-graphs (case-lambda ((world agent-one title-one agent-two title-two composite-file) (compare-graphs world agent-one title-one agent-two title-two composite-file (default-steps) (/ (default-width) 2) (default-height) (/ (default-font-size) 2))) ((world agent-one title-one agent-two title-two composite-file steps width height font-size) (let ((directory-one (simulate-comparatively (copy-world world) agent-one steps width height font-size title-one)) (directory-two (simulate-comparatively world agent-two steps width height font-size title-two))) (let ((composite-directory (create-temporary-directory))) (system* "cd ~a && for i in *; do echo $i; convert +append $i ~a/$i ~a/$i; done" directory-one directory-two composite-directory) ((make-animation-finalizer composite-directory composite-file)))))))