Clase principal: Caballos
Clase secundaria, donde esta el constructor de cada caballo: Caballo
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;
String[] po;
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,120,200,30);
l9.setBounds(50,120,200,a);
setBackground(co);
count = (int)(Math.random()*15+4);
metros = (int)(Math.random()*300+1000);
Caballo[] ca = new Caballo[count];
for(int i=0; i<count; i++)
{
ca[i] = new Caballo(i+1,metros,l6,l7);
}
for (int i=0; i<count; i++)
{
new Thread (ca[i]).start();
}
}
public void posicionar(String[] po1)
{
po = po1;
System.out.println(po.length);
for(int i=0; i<=po.length; i++)
{
l9.setText("Dorsal: " + po[i] + "\r");
}
}
}
CABALLO.CLASS:
Código:
import java.awt.*;
import java.applet.*;
public class Caballo extends Panel implements Runnable
{
int dorsal, y = 50, metros, avancealeatorio, pos;
Label l6, l7;
Canvas c;
String[] cas;
Caballos cab;
public Caballo(int d, int m, Label g, Label s)
{
dorsal = d;
metros = m;
l6 = g;
l7 = s;
cab = (Caballos)l6.getParent();
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()*0.02+5);
if (pos > metros) pos = metros;
c.setSize(pos*200/metros,20);
}
if(pos == metros)
{
cas = new String[dorsal];
cab.posicionar(cas);
}
if (l6.getText().equalsIgnoreCase(""))
l6.setText("Dorsal: " + dorsal);
else
{
if (l7.getText().equalsIgnoreCase(""))
l7.setText("Dorsal: " + dorsal);
}
}
}
bichomen

