Added whitespace.
Merge neighboring loops.
Replaced magic numbers.
The three rules for movement are now functions.
Use numpy arrays.
Attempt to vectorize
Modified test case to match the new data structure.
Removed commented sections.
Recorded new fixture for new data structure.
Functions should not have side effects.
Added unittests for all functions.
Prettified code.
In place augmentation lets test case fail, even though the result of the assignment is the same when compared in the code at runtime.