import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;

public class Util {

	public static Position[] getPortalInRange(int player, int range) {
		Position pl = Interface.position_agent(player);
		Position[] portal = Interface.liste_portails();
		ArrayList<Position> re = new ArrayList<Position>();
		for (Position p : portal) {
			if (Interface.distance(pl, p) <= range) {
				re.add(p);
			}
		}
		return (Position[]) re.toArray();
	}

	public static Position getNearestPortal(int player) {
		Position pl = Interface.position_agent(player);
		int min = Integer.MAX_VALUE;
		Position[] portal = Interface.liste_portails();
		Position pF = null;
		for (Position p : portal) {
			if (Interface.distance(pl, p) < min) {
				min = Interface.distance(pl, p);
				pF = p;
			}
		}
		return pF;
	}

	public static Position[] getPortalInRangeSort(int player, int range) {
		Position[] f = getPortalInRange(player, range);
		final Position pl = Interface.position_agent(player);
		Arrays.sort(f, new Comparator<Position>() {

			@Override
			public int compare(Position pos1, Position pos2) {
				int d1 = Interface.distance(pos1, pl);
				int d2 = Interface.distance(pos2, pl);
				return d1 - d2;
			}
		});
		return f;
	}
	
	public static Position getBestPortalInRange(int player, int range) {
		Position[] pos = getPortalInRange(player, range);
		for(Position p : pos) {
			if(Interface.portail_joueur(p) == Interface.adversaire()) {
				
			} else {
				
			}
		}
		return null;
	}

}
