Preliminary documentation of the project.
GitHub repo.

Read more below:

A Turing Machine is a state machine.
State machines come in various forms. The point is to transition from one state to another, each state encapsulating a behavior.

/

Simply put, a Turing Machine takes in several strips of tapes, each having symbols written along it. There is a "head" that reads these tapes. When encountering a symbol, it refers to a table telling the machine what to do--stamp a new symbol next to the current one, switch which tape it is reading, or some combination of both.

I decided to interpret the "symbol" as an encapsulation of "state + conditions". So, given the current state and conditions, determine which state to go to next.