Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/12/2006, 11:47
Avatar de bichomen
bichomen
 
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 11 meses
Puntos: 2
Bueno, despues de probar y cambiar varias cosas del codigo, lo unico que consigo es que llegen los caballos en el mismo orden en que salen y no se me muestra bien la clasificación, agradeceria un poco de ayuda, publico los cambios:

Caballos.class:
Código:
import java.applet.*;
import java.awt.*;

public class Caballos extends Applet
{
	Label l1,l2,l3,l4,l5, l6, l7,l8, l9;
	Color co;
	int x,y, metros, count, a = 20*count, dorsal;
	Panel p;
	Caballo[] ca;
	int[] contador;
	
	public void init()
	{
			l1 = new Label("Carrera de caballos"); 
			l2 = new Label("Resultados");
			l3 = new Label("Ganador:");
			l4 = new Label("Segundo:");
			l6 = new Label();
			l7 = new Label();
			l8 = new Label("Clasificaci�");
			l9 = new Label();
			p = new Panel(new BorderLayout());
			p.setVisible(true);
			p.setBackground(Color.CYAN);
			p.add(l2);
			p.add(l3);
			p.add(l4);
			p.add(l6);
			p.add(l7);
			p.add(l8);
			p.add(l9);
					
			co = new Color(255,255,255);
		
			add(l1);
			add(p);
				
		setLayout(null);
		
		l1.setBounds(250,10,150,30);
		p.setBounds(300,100,250,500);
		l2.setBounds(50,5,150,30);
		l3.setBounds(10,50,90,30);
		l4.setBounds(10,100,90,30);
		l6.setBounds(100,50,100,30);
		l7.setBounds(100,100,100,30);
		l8.setBounds(50,140,200,30);
		l9.setBounds(50,120,200,a);
		
		setBackground(co);
	
		count = (int)(Math.random()*15+4);
		metros = (int)(Math.random()*300+1000);
			
		ca = new Caballo[count];		
		contador = new int[count];
		
		for(int i=0; i<count; i++)
		{
			ca[i] = new Caballo(i+1,metros,l6,l7,contador);
					new Thread (ca[i]).start();			
		}
						
		for(int i=0; i<contador.length; i++)
		{
			System.out.println(contador[i]);
			l9.setText("\rDorsal: " + contador[i]);
		}
	}
}
Caballo.class:
Código:
import java.awt.*;

public class Caballo extends Panel implements Runnable
{
	int dorsal, y = 50, metros, pos;
	Label l6, l7;
	Canvas c;
	int[] contador;
				
	public Caballo(int d, int m, Label g, Label s, int[] co)
	{
		dorsal = d;
		metros = m;
		l6 = g;
		l7 = s;
		contador = co;
			
		setLayout(null);
		
		Label num = new Label("" + dorsal);
		num.setBounds(10,y+22*dorsal,30,20);
		add(num);
				
		c = new Canvas();
		c.setBounds(50,y+22*dorsal,1,20);
		c.setBackground(Color.blue);	
		add(c);
	}	
	
	public void run()
	{
		pos = 0;
		
		while (pos < metros)
		{
			pos += (int)(Math.random()*202+8);
		}
				
		if (pos >= metros)
		{
			pos = metros;			
			c.setSize(pos*200/metros,20);
			
			int j = 0;
			while(contador[j] == 0)
			{				
				contador[j] = dorsal;
				j++;
				break;
			}
			
			if (l6.getText().equalsIgnoreCase(""))
			{	
				l6.setText("Dorsal: " + dorsal);		
			}
			
			else
			{
				if (l7.getText().equalsIgnoreCase(""))
				{
					l7.setText("Dorsal: " + dorsal);				
				}
			}
		}
	}
}
bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332