import java.util.*; public class test { /** * @param args */ public static int sort(ArrayList flags_x_done, ArrayList flags_y_done, ArrayList flags_x_left, ArrayList flags_y_left ){ System.out.println("SORT STARTED"); System.out.println("Arraysize_x_left: "+flags_x_left.size()+" Arraysize_x_done: "+flags_x_done.size()); ArrayList new_x = new ArrayList(); ArrayList new_y = new ArrayList(); new_x.addAll(flags_x_done); new_y.addAll(flags_y_done); for ( int i = 0 ; i <= flags_x_left.size() ; i++ ) { System.out.println("Current i:"+i); flags_x_done = new ArrayList(); flags_y_done = new ArrayList(); flags_x_done.addAll(new_x); flags_y_done.addAll(new_y); if ( flags_x_left.size() == 0 ) { System.out.println("FINISH"); return 0; } else { System.out.println("ELSE"); flags_x_done.add( flags_x_left.get(i) ); flags_x_left.remove(i); flags_y_done.add( flags_y_left.get(i) ); flags_y_left.remove(i); sort( flags_x_done , flags_y_done, flags_x_left , flags_y_left ) ; } } return 1; } public static void main(String[] args) { // TODO Auto-generated method stub // Setze Flaggen der Eight Poles map Flags flag = new Flags(8); flag.set_x(0,-212); flag.set_y(0,-26); flag.set_x(1,-5); flag.set_y(1,123); flag.set_x(2,200); flag.set_y(2,4); flag.set_x(3,-134); flag.set_y(3,-82); flag.set_x(4,65); flag.set_y(4,-125); flag.set_x(5,-129); flag.set_y(5,45); flag.set_x(6,173); flag.set_y(6,79); flag.set_x(7,50); flag.set_y(7,-64); int counter = 0; /*int min = 9999999; int a1=0,a2=0,a3=0,a4=0,a5=0,a6=0,a7=0,a8=0; for ( int a = 0; a < 8 ; a++) { for ( int b = 0; b < 8 ; b++) { if ( a == b ) continue; for ( int c = 0; c < 8 ; c++) { if ( c == a || c == b ) continue; for ( int d = 0; d < 8 ; d++) { if ( d == a || d == b || d==c) continue; for ( int e = 0; e < 8 ; e++) { if ( e == a || e == b || e == c || e == d) continue; for ( int f = 0; f < 8 ; f++) { if ( f == a || f == b || f == c || f == d || f == e) continue; for ( int g = 0; g < 8 ; g++) { if ( g == a || g == b || g == c || g == d || g == e || g == f) continue; for ( int h = 0; h < 8 ; h++) { if ( h == a || h == b || h == c || h == d || h == e || h == f || h == g) continue; int abstand = flag.check(a, b, c, d, e, f, g, h); if ( abstand < min ) { min = abstand; a1=a;a2=b;a3=c;a4=d;a5=e;a6=f;a7=g;a8=h; } counter++; } } } } } } } } System.out.println("Counter:"+counter); System.out.println("Minimum:"+min+" "+a1+" "+a2+" "+a3+" "+a4+" "+a5+" "+a6+" "+a7+" "+a8); System.out.println("0-1: (0/0)->("+flag.get_x(a1)+"/"+flag.get_y(a1)+") "+flag.abstand(8,a1)); System.out.println( flag.check(0,1,3,2,3,5,7,6 )); for ( int i = 0; i<8; i++) System.out.println("Abstand Fahne x zum 0/0->"+i+" "+flag.abstand(8,i)); flag.sort(); System.out.println("Abstand Fahne Ursprung zu 0 "+flag.abstand(8,0)); for ( int i = 0; i<8; i++) System.out.println("Abstand Fahne "+i+" zu "+(i+1)+" "+flag.abstand(i,i+1)); System.out.println( flag.check(0,1,2,3,4,5,6,7 )); //System.out.println("0-1: (0/0)->("+flag.get_x(1)+"/"+flag.get_y(1)+") "+flag.abstand(8,1)); //flag.set_x(0,4); //flag.set_y(0,4); //flag.set_x(1,-2); //flag.set_y(1,-4); //System.out.println("Abstand von("+flag.get_x(0)+"/"+flag.get_y(0)+")-("+flag.get_x(1)+"/"+flag.get_y(1)+") = "+flag.abstand(0,1)); */ ArrayList flags_x = new ArrayList(); ArrayList flags_y = new ArrayList(); flags_x.add(-212); flags_y.add(-26); flags_x.add(-5); flags_y.add(123); flags_x.add(200); flags_y.add(4); flags_x.add(-134); flags_y.add(-82); flags_x.add(65); flags_y.add(-125); sort(new ArrayList(),new ArrayList(),flags_x,flags_y); } }