Start by working out (paper & pencil!) what 'states' you need then work out what the 'events' are that cause a change in state. Finally for each state change work out what 'action' should be triggered by the state change.
So one 'state' might be 'throwing dice' the next may be 'move to new square', the 'event' that causes the transition from 'throwing dice' to 'move to new square' is 'dice throw complete'. The 'action' triggered by this change may consist of a PlayAnimation call in addition to a call to move the character to the new square.
Once you have mapped out all the legal state transitions and worked out what needs to happen on each one then you can isolate the small snippets of code for each action in isolation and, more importantly, test each piece in isolation.
For each state transition the code is simply:
if in state A and event 1 occurs then change state to state B and carry out action X
Been there, done that, got all the T-Shirts!