protected void setup() {
    	if(log.isLoggable(Logger.INFO))
    		log.log(Logger.INFO, "Hello World! This is Agent '" + getLocalName() + "'!");
    	
    	world = new World();
    	
		new WumpusGUI(this).setVisible(true);

    	dfd = new DFAgentDescription();
    	dfd.setName(this.getAID());

    	/*
    	 * Der Agent wird in den Yellow Pages registriert
    	 */
		sd = new ServiceDescription();
		sd.setName(WumpusConsts.GAME_SERVICE_NAME);
		sd.setType(WumpusConsts.GAME_SERVICE_TYPE);
		dfd.addServices(sd);
		try {
	    	if (DFService.search(this, gameAgent).length > 0) {
		    	if(log.isLoggable(Logger.INFO))
		    		log.log(Logger.INFO, "DEregister game '" + WumpusConsts.GAME_SERVICE_TYPE + "'");
	    		DFService.deregister(this, gameAgent);
	    	}
	    	if(log.isLoggable(Logger.INFO))
	    		log.log(Logger.INFO, "Register game '" + WumpusConsts.GAME_SERVICE_TYPE + "'");
			DFService.register(this, dfd);
		} catch (FIPAException e) {
	    	if(log.isLoggable(Logger.WARNING))
	    		log.log(Logger.WARNING, "ERROR: " + e.getMessage());
			e.printStackTrace();
		}
		
		/*
		 * Der Topic-Kanal für die Kommunikation mit allen spielenden Agenten
		 * wird erzeugt. (Um allen den Tod des Wumpus verkünden zu können.)
		 */
		TopicManagementHelper hlp;
		try {
			hlp = (TopicManagementHelper) this.getHelper(TopicManagementHelper.SERVICE_NAME);
			this.topic = hlp.createTopic(WumpusConsts.GAME_TOPIC_NAME);
		} catch (ServiceException e) {
			throw new RuntimeException(e);
		}

//		/*
//		 * Das Finite State Machine Behaviour, in dem sie
//		 * für das Spiel benötigten Behaviour zusammengefasst
//		 * sind, wird erzeugt und zum Agenten hinzugefügt.
//		 */
//		GameBehaviour fsm = new GameBehaviour(this);
//		this.addBehaviour(fsm);
		
		PlayGameBehaviour pgb = new PlayGameBehaviour();
		this.addBehaviour(pgb);
   	}