import java.util.*;
public class test {
/**
* @param args
*/
public static int sort(ArrayList<Integer> flags_x_done, ArrayList<Integer> flags_y_done, ArrayList<Integer> flags_x_left, ArrayList<Integer> 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<Integer> new_x = new ArrayList<Integer>();
ArrayList<Integer> new_y = new ArrayList<Integer>();
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<Integer>();
flags_y_done = new ArrayList<Integer>();
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<Integer> flags_x = new ArrayList<Integer>();
ArrayList<Integer> flags_y = new ArrayList<Integer>();
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<Integer>(),new ArrayList<Integer>(),flags_x,flags_y);
}
}