private void updateAgPercept(Agent ag) 	
	{
		String agName = ag.getName() ;
		
		clearPercepts(agName);
		
		// exit for preys
		if (agName.contains("rabbit"))
		{
			return ;
		}
		
		// inform agent's current state
		addPercept(agName, Literal.parseLiteral("life(" + ag.getLife() + ")"));

		// inform agent's position
		addPercept(agName, Literal.parseLiteral("at(" + ag.getX() + "," + ag.getY() + ")"));
		
		// perceive other agents around
		Location l = ag.getPos();
		Agent closer = null ;
		for (int i = 0 ; i < island.getNbOfAgs() ; i++)
		{
			Agent agent = island.getAg(i) ;
			int distance = (int)l.distanceEuclidean(agent.getPos());
			if (agent != ag && agent.isAlive() == true && distance < ag.getRadius())
			{
				addPercept(agName, Literal.parseLiteral("other(" + agent.getName() + "," + agent.getX() + "," + agent.getY() + "," + distance + ")"));
			}
		}
		
		// perceive humans
		Agent agent = island.getPlayerAg() ;
		int distance = (int)l.distanceEuclidean(agent.getPos());
		if (agent != ag && agent.isAlive() == true && distance < ag.getRadius())
		{
			addPercept(agName, Literal.parseLiteral("human(" + agent.getName() + "," + agent.getX() + "," + agent.getY() + "," + distance + ")"));
		}

		// specific to man-beast
		
		// inform agent's where to find some food
		addPercept(agName, Literal.parseLiteral("food(" + island.Food.x + "," + island.Food.y + ")"));
		
		// if a new destination has been calculated, create the belief
		if ( ag.getDestination() != null )
		{
			l = ag.getDestination() ;
			addPercept(agName, Literal.parseLiteral("goingto(" + l.x + "," + l.y + ")"));
		}
    }