! explore with printing the size ! find the mind ! lookup the bounds ! print around those bounds : printit ( hash -- str ) [ 100 300 [a,b] [ 300 100 [a,b] [ 2array swap at [ "#" ] [ "." ] if write ] with with each nl ] with each ] with-string-writer ; : size ( hash -- str ) keys [ [ first ] map ] [ [ second ] map ] bi [ [ supremum ] [ infimum ] bi - ] bi@ * ; : animate ( hash -- hash' ) [ [ v+ ] keep ] assoc-map ; "/tmp/input" ascii file-lines [ "<,>" split { 1 2 4 5 } swap nths [ [ CHAR: space = ] trim string>number ] map 2 group ] map 10027 [ animate ] times dup . printit reverse print