public WumpusPerception processAction(AID agentAID, String action) {
		WumpusPerception perception = null;
		
//		switch(action) {
//		
//		case WumpusConsts.ACTION_REGISTER:
//			
//			perception = null;
//			if (isRegisteredHunter(agentAID))
//				world.removeHunter(agentAID);
//			break;
//			
//		case WumpusConsts.ACTION_DEREGISTER:
//		
//			world.removeHunter(agentAID);
//			break;
//			
//		}
		

		if (action.equals(WumpusConsts.ACTION_REGISTER)) {
			
			perception = null;
			
			if (isRegisteredHunter(agentAID))
				world.removeHunter(agentAID);
				
			perception = world.addHunter(agentAID);
			
		} else if (action.equals(WumpusConsts.ACTION_DEREGISTER)) {
			
			world.removeHunter(agentAID);
			
		} else if (action.equals(WumpusConsts.ACTION_TURN_LEFT)) {
			
			perception = world.eventTurnLeft(agentAID);
			
		} else if (action.equals(WumpusConsts.ACTION_TURN_RIGHT)) {
			
			perception = world.eventTurnRight(agentAID);
			
		} else if (action.equals(WumpusConsts.ACTION_MOVE)) {
			
			perception = world.eventMove(agentAID);
			
		} else if (action.equals(WumpusConsts.ACTION_GRAB)) {
			
			perception = world.eventGrab(agentAID);
			
		} else if (action.equals(WumpusConsts.ACTION_SHOOT)) {
			
			perception = world.eventShoot(agentAID);
			
			if (perception.getScream() == WumpusConsts.SENSOR_SCREAM) {
				
				/*
				 * Wenn der Wumpus erlegt wurde, erhalten alle Agenten
				 * im Spiel einen entsprechenden Hinweis, und zwar über
				 * den Topic-Kanal.
				 * TODO: Gedanken machen über die sinnvollste Verarbeitung
				 * im Spiel-Agenten, vermutlich besser eine richtige
				 * Perception mit einem 'scream' verschicken. (Kann das 
				 * halbwegs normal verarbeitet werden?)
				 */
				ACLMessage msgTopic = new ACLMessage(ACLMessage.INFORM);
				msgTopic.setSender(this.getAID());
				msgTopic.addReceiver(this.topic);
				msgTopic.setContent(WumpusConsts.SENSOR_SCREAM);
				this.send(msgTopic);			
			}
			
		} else {
			throw new RuntimeException();
		}
		
		return perception;
	}