Copyright (C) 2008 Eric Hutchins


To run:
  graphicaltm tmFile numberOfTapes tapeFile1 [tapeFile2] [tapeFile3] . . .

In running, the following key commands may be useful:

R - restart the Turing Machine to replay
ESC - quit the program


Also, states may be clicked and dragged to get a better layout.  


As for the layout of the .tm file:
It starts with a line for the start state.  
The next line has n, the number of final states.  
The next n lines are for the final states.  
Then the next lines will represent transitions.  Thy will be of the form "q1 i o m q2" without the quotes where q1 is the state it begins in, i is the current input symbol, o is the output symbol to write, m is the amount the tape head should move (-1 for left, 1 for right), and q2 is the state to move to.  

_ will represent a blank space.  

Ex:


q0
1
qFinal
q0 0 # 1 q1
q0 1 # 1 q1
q1 1 0 1 q1
q1 0 0 1 q1
q1 _ 0 1 q2
q2 0 0 -1 q2
q2 1 1 -1 q2
q2 _ _ -1 q2
q2 # 0 0 qFinal

So for this tm, it starts in q0, moves right changing 1s to 0s, and then moves back left.  

The tape will be a list of symbols separated by whitespace.  


For Turing Machines with more than one tape, input, output, and movement simply have as many symbols/numbers as tapes in each spot.  

i.e. q0 i1 i2 i3 . . . in o1 o2 o3 . . . on m1 m2 m3 . . . mn q1

where i1 is the input symbol on the first tape, i2 is the input symbol on the second tape, etc. and the same for the output and movement
