MsvP@habdichliebhasi
Erfahrenes Mitglied
Hey jungs & mädels 
Brauche eure Hilfe, meine Freundin hat momentan im Info Unterricht Java, jetzt haben die ein Autorennen in Java bekommen, was die jetzt umprogramieren müssen für JavaScript, dämliche aufgabe, wie ich finde, aber naja... vielleicht könnt ihr ja mal drüber schauen und ihr helfen, sie ist schon ganz verzweifelt
)))
Gruß Micha.
Das ist das Java proggi:

Brauche eure Hilfe, meine Freundin hat momentan im Info Unterricht Java, jetzt haben die ein Autorennen in Java bekommen, was die jetzt umprogramieren müssen für JavaScript, dämliche aufgabe, wie ich finde, aber naja... vielleicht könnt ihr ja mal drüber schauen und ihr helfen, sie ist schon ganz verzweifelt

Gruß Micha.
Das ist das Java proggi:
PHP:
// Auto fürs Formel1-Autorennen:
// R. Krell, 9/2003 -- Java-JDK + stiftUndCo
// http://www.r-krell.de
import stiftUndCo.*;
import java.awt.*; // für Color
public class Formel1_Auto
{
private BuntStift stift = new BuntStift();
private String name;
private int x, y;
public Formel1_Auto (int xPos, int yPos, Color farbe, String bezeichnung)
{ // Konstruktor
x = xPos; // füllt Datenfelder mit den übergebenen Werten ..
y = yPos;
name = bezeichnung;
stift.setzeFarbe (farbe);
zeichneAuto (true); // .. und zeichnet Auto erstmalig
}
private void zeichneAuto (boolean sichtbar)
{
if (sichtbar)
{
stift.normal();
}
else
{
stift.radiere();
}
stift.hoch();
stift.bewegeBis (x, y);
stift.runter();
stift.bewegeBis (x+42, y);
stift.bewegeBis (x+1, y-12);
stift.bewegeBis (x, y); //..Karosserie
stift.hoch();
stift.bewegeBis (x+8, y-2);
stift.zeichneKreis (7); // Hinterrad
stift.bewegeBis (x+33, y);
stift.zeichneKreis (5); // Vorderrad
}
public void fahreUm (int deltaX)
{
zeichneAuto (false); // löscht altes Auto
x = x + deltaX;
zeichneAuto (true); // zeichnet neues Auto
}
public int wo ()
{
return (x+42); // x-Position der Spitze des Autos
}
public String wer ()
{
return (name);
}
}
--------------------------------------------------------------------------------
zum Inhaltsverzeichnis (oben) / zum Seitenende
Zweite Java-Datei: „Fomel1_Strecke.java" -- Bauplan für die Rennstrecke
// Rennstrecke fürs Formel1-Autorennen:
// R. Krell, 9/2003 -- Java-JDK + stiftUndCo
// http://www.r-krell.de
import stiftUndCo.*;
public class Formel1_Strecke
{
Bildschirm gelände;
BuntStift stift;
int x0, x1, y0;
public Formel1_Strecke (int xStart, int xZiel, int yStart)
{ // Konstruktor :
x0 = xStart; // füllt Datenfelder ..
x1 = xZiel;
y0 = yStart;
gelände = new Bildschirm (x1+20, y0+200,
"Autorennen -- [S]=(wieder) sichtbar machen) -- www.r-krell.de");
stift = new BuntStift(); // .. und erzeugt Bildschirn und Stift
}
public void zeichneStrecke()
{
gelände.löscheAlles(); // für nochmaligen Start
stift.bewegeBis (x0, y0); // zeichnet Straße
stift.runter();
stift.bewegeBis (x1, y0);
stift.hoch();
stift.bewegeBis (x0, y0+50);
stift.runter();
stift.bewegeBis (x1, y0+50);
stift.hoch();
stift.bewegeBis (x0, y0+100);
stift.runter();
stift.bewegeBis (x1, y0+100);
stift.hoch();
stift.bewegeBis (x0, y0+120); // beschriftet Start und Ziel
stift.schreibe ("Start");
stift.bewegeBis (x1-20, y0+120);
stift.schreibe ("Ziel");
stift.bewegeBis(175,200); // Spielanleitung
stift.schreibe ("Tasten [R] und/oder [B] drücken!");
}
}
--------------------------------------------------------------------------------
zum Inhaltsverzeichnis (oben) / zum Seitenende
Dritte Java-Datei: „Fomel1_Rennen.java" -- Bauplan für die Steuerung des Rennens
// Renn-Steuerung fürs Formel1-Autorennen:
// R. Krell, 9/2003 -- Java-JDK + stiftUndCo
// http://www.r-krell.de
import stiftUndCo.*;
public class Formel1_Rennen
{
Formel1_Strecke monza = new Formel1_Strecke (10, 500, 50);
Formel1_Auto ferrari, williams;
Tastatur taste;
BuntStift stift;
public void spielen ()
{
do
{
monza.zeichneStrecke();
ferrari = new Formel1_Auto (10, 80, Farbe.ROT, "Der rote Ferrari");
williams = new Formel1_Auto (10,130, Farbe.BLAU, "Der blaue BMW-Williams");
taste = new Tastatur ();
stift = new BuntStift();
rennen();
siegerEhrung ();
} while (nochmal());
}
private void rennen ()
{
while ((ferrari.wo()<500)&&(williams.wo()<500))
// Autos bewegen, solange keins am Ziel
{
if (taste.wurdeGedrueckt())
{
switch (taste.zeichen())
{
case 'r' : ;
case 'R' : ferrari.fahreUm (2); break; // Taste [R]: ferrari
case 'b' : ;
case 'B' : williams.fahreUm (2); break; // Taste [B]: williams
case 's' : ;
case 'S' : monza.zeichneStrecke(); // Taste [S]: alles nochmal ..
ferrari.fahreUm (0); //.. ohne Bewegung zeichnen,
williams.fahreUm (0); //.. weil Fenster verdeckt war
}
}
}
}
private void siegerEhrung ()
{
stift.bewegeBis (50,180); // löscht Spielanleitung
stift.setzeFarbe (Farbe.WEISS);
stift.setzeFuellMuster(Muster.GEFUELLT);
stift.zeichneRechteck(450,30);
stift.setzeFarbe (Farbe.SCHWARZ);
stift.bewegeBis(100,200); // nennt Gewinner
if (ferrari.wo()>=500)
{ // wenn ferrari vorne steht
stift.schreibe (ferrari.wer()+" hat gewonnen");
}
else
{
stift.schreibe (williams.wer()+" hat gewonnen");
}
}
private boolean nochmal ()
{
stift.schreibe (" -- [N]=Neustart, [E]=Ende");
char zchn;
do // do-Schleife: Wartet auf Taste [N] oder [E]
{
while (!taste.wurdeGedrueckt()); // nichts tun: Warten, auf Taste
zchn = taste.zeichen();
if ((zchn == 's')||(zchn == 'S')) // evtl. noch bei Taste [S]
{ // Hinweis auf erwartete Eingabe
stift.bewegeBis(140,200);
stift.schreibe("Rennen beendet -- [N]=Neustart, [E]=Ende");
}
} while ((zchn!='e')&&(zchn!='E')&&(zchn!='n')&&(zchn!='N'));
return ((zchn=='n')||(zchn=='N')); // true: nochmal Neustart gewünscht
}
}
--------------------------------------------------------------------------------
zum Inhaltsverzeichnis (oben) / zum Seitenende
Vierte Java-Datei: „Fomel1_Start.java" -- Startdatei
// Startdatei fürs Formel1-Autorennen:
// R. Krell, 9/2003 -- Java-JDK + stiftUndCo
// http://www.r-krell.de
public class Formel1_Start extends java.applet.Applet
{
public void init() // Start als Applet bzw. ..
{
Formel1_Rennen rennSpiel = new Formel1_Rennen();
rennSpiel.spielen();
}
public static void main (String[] s) //.. als Application
{
Formel1_Rennen rennSpiel = new Formel1_Rennen();
rennSpiel.spielen();
}
}