With turn-based scenarios, I usually use an int field to track the phase of the game. Each action is given a number and when an action is completed, the number is incremented and the next step in the game is done. For example, my backgammon game (which is not up on the site) has something like the following:
* SETUP phase = -1 ; proceeds to 0;
* MOVE POINTER TO DIE AND WAIT FOR CLICK phase = 0 ; proceeds to 1;
* COMENCE DIE ROLLING phase = 1 ; proceeds to 2;
* WAIT FOR ROLLING DIE TO STOP phase = 2 ; proceed to 3;
* TURN EXECUTION phase = 3 for player or = 4 for AI ; proceed to 0;
* AI MOVE POINTER TO COUNTER phase = 5; proceed to 6;
* AI DRAGS COUNTER TO DESTINATION = 6; proceed to 7;
* WAIT FOR DRAG TO COMPLETE phase = 7; proceed to 0;
The field is basically used to determine what to do and when. A 'switch' statement controls the operations from within the world 'act' method.

