/* La classe UsaTreno contenga un metodo main che, appoggiandosi alle risorse della classe Treno contenuta nel package myclasses, simula la creazione di due treni dotati di locomotive di potenza di traino uguale a 50, a cui sono accodati al più 10 vagoni di peso casuale variabile tra 1 e 10. * Il metodo successivamente scambia i vagoni in modo da bilanciare quanto più possibile il peso dei due treni secondo una strategia "greedy", ovvero sganciando tutti i vagoni dai due treni e poi assegnando via via il vagone più pesante al treno in quel momento più leggero. * */ import prog.io.ConsoleOutputManager; import myclasses.Treno; class UsaTreno { public static void main(String[] args) { final int MAX_VAG = Treno.MAX_VAG; ConsoleOutputManager out = new ConsoleOutputManager(); int potenza = 50; Treno t1 = new Treno(potenza); Treno t2 = new Treno(potenza); do t1.accodaVagone(1+(int)(10*Math.random())); while(t1.quantiVagoni()0 ); do t2.accodaVagone(1+(int)(10*Math.random())); while(t2.quantiVagoni()0 ); out.println("Treni creati casualmente:" ); out.println("T1: " + t1.toString()); out.println("T2: " + t2.toString()); out.println("Peso treni creati casualmente:" ); out.println("Peso T1: " + t1.quantoPesa()); out.println("Peso T2: " + t2.quantoPesa()); // mettiamo le masse di tutti i vagoni dentro a un vettore int[] vagoni = new int[t1.quantiVagoni()+t2.quantiVagoni()]; int temp = 0; while (t1.quantiVagoni()>0) vagoni[temp++] = t1.sganciaVagone(); while (t2.quantiVagoni()>0) vagoni[temp++] = t2.sganciaVagone(); // eliminiamo via via l'elemento più pesante dal vettore e assegnamolo al treno più leggero int massimo, max_ind = 0; for (int i=0; imassimo) { massimo = vagoni[j]; max_ind = j; } } if (t1.quantiVagoni()