
03/12/2006, 11:47
|
 | | | Fecha de Ingreso: junio-2003 Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 21 años, 9 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 |