All pastes #451998 Raw Edit

Untitled

public text v1 · immutable
·published 2007-04-21 23:49 UTC
rendered paste body
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);

	}

}