frame.getContentPane().add(theVisual);
frame.pack();
frame.setVisible(true);
StateMachine theMachine = new CachedStateMachine(new ProverStateMachine());
theMachine.initialize(theGame.getRules());
try {
MachineState theCurrentState = theMachine.getInitialState();
do {
theVisual.observe(new ServerNewGameStateEvent(theCurrentState));
theCurrentState = theMachine.getRandomNextState(theCurrentState);