Hallo zusammen,
ich muss auch diese Aufgabe zu den Threads machen. Da die Aufgabe von Bilalmrc leide nicht mehr online ist stelle ich sie nochmal ein. Also,
Aufgabe 1 – Threads
Realisieren Sie eine sekundengenaue Autorennen-Simulation. Jedes Autorennen besteht aus einer
variablen Anzahl, jedoch mindestens vier, Rennwagen. Jeder Rennwagen soll dabei ein Thread sein,
der einen Namen sowie eine Startgeschwindigkeit in Metern pro Sekunde hat. Die
Startgeschwindigkeit sollte zwischen 80 km/h und 300 km/h liegen.
Sobald das Autorennen gestartet worden ist, "fahren" die Autos mit der Startgeschwindigkeit
multipliziert mit einem Zufallswert zwischen 0.5 und 1.5 Richtung Ziel. Beim Starten können Sie die
Synchronisation vernachlässigen. Jede Sekunde soll jedes Auto die bis dahin zurückgelegte Strecke
auf der Konsole ausgeben.
Die Strecke ist 3000m lang. Sobald ein Auto die Ziellinie überquert hat, soll eine Meldung auf der
Konsole ausgegeben werden.
Das Programm soll sich beenden, wenn alle Autos im Ziel angekommen sind
Beispielausgabe:
Rennen startet******
...
Rennwagen Ente hat sich 5000m bewegt
...
Rennwagen Gans hat sich 2500m bewegt
...
Rennwagen Ente hat das Ziel erreicht!
...
Rennwagen Gans hat das Ziel erreicht!
Hier ist nun mal ein Code den ich geschrieben habe:
Code:
public class Autorennen extends Thread {
String name;
double geschwindigkeit;
public Autorennen(String name, double geschwindigkeit)
{
this.name = name;
this.geschwindigkeit = geschwindigkeit;
}
public void run()
{
try { for (;;)
{
System.out.println(name + " "+"ist vorne");
sleep((long) (Math.random()*geschwindigkeit));
}
} catch (InterruptedException e)
{
return;
}
}
public static void main(String[] args)
{
new Autorennen("porsche",100).start();
new Autorennen("audi",200).start();
}
Es läuft natürlich aber hält nicht an. Was muss ich denn machen damit ich quasi das "Ziel" realisieren kann und wie bekomme ich diesen Zufallswert zwischen 0,5 und 1,5 denn bei meiner Methode ist der Wert meine ich höher. Danke schonmal im vorraus.