$this->addField($param); $letter = new A_Controller_Input_Field('letter'); $letter->addFilter($letter_rule); $this->addField($letter); $this->processRequest($request); $game = new HangmanGame(); $locator->set('Game', $game); $game->word = $request->get('word'); $game->guesses = $request->get('guesses'); $game->misses = $request->get('misses'); $game->level = $request->get('level'); $game->guess($letter->value); $this->addState(new A_Controller_App_State('start', array(new StartView(), 'render'))); $this->addState(new A_Controller_App_State('game', array(new GameView(), 'render'))); $this->addState(new A_Controller_App_State('win', array(new WinView(), 'render'))); $this->addState(new A_Controller_App_State('lose', array(new LoseView(), 'render'))); $this->addTransition(new A_Controller_App_Transition('start', 'game', new A_Rule_Notnull('level', ''))); $this->addTransition(new A_Controller_App_Transition('start', 'lose', new A_Rule_Notnull('giveup', ''))); $this->addTransition(new A_Controller_App_Transition('game', 'lose', new LoseRule($game))); $this->addTransition(new A_Controller_App_Transition('game', 'win', new WinRule($game))); parent::run($locator); } } //----------------------------------------------------------------------------- $Request = new A_Http_Request(); $Response = new A_Http_Response($Locator); $Locator->set('Request', $Request); $Locator->set('Response', $Response); $controller = new Hangman($Locator, 'start'); $controller->run($Locator); echo $Response->render();