Will Achtung die Kurve in BlueJ programmieren brauch aber noch Hilfe

Hallo, wir sollen im Untericht ein Programm schreiben, egal was. Ich will das bekannte Spiel Achtung die Kurve nach Programmieren(falls nicht bekannt einfach googlen). Ich hab auch schon angefangen ich hab die die Hauptbestandteile aus einem anderen Programm also kann es sein dass da unnötige Sachen dabei sind. Ich habe einen Spieler der sich schon mit der selben Steuerung bewegt und eine Linie zeichnet und wenn es die Wand berührt das es dann stoppt, doch jetzt will ich dass es auch stoppt wenn ich die eigenen oder später auch andere Linien überfährt. Wie kann man das machen? PS: Ich benutze noch SuM(Stifte und Mäuse:http://www.mg-werl.de/sum/)

Das ist das Hauptprogramm

import sum.kern.*;
/**
* @author 
* @version 
*/
public class Hauptprogramm
{
// Objekte
Bildschirm hatBildschirm;
Maus hatMaus;
Buntstift hatBuntstift;
Spieler1 hatSpieler1;
Tastatur dieTastatur;

// Konstruktor



public Hauptprogramm()
{
    hatBildschirm = new Bildschirm();
    hatMaus = new Maus();
    dieTastatur = new Tastatur();
    hatBuntstift = new Buntstift();
    hatSpieler1 = new Spieler1(hatBildschirm, 0);
    fuehreAus();
}


public void fuehreAus()
{
    // Aktionsteil
    hatSpieler1.zeichne();

    do
    {
            if(dieTastatur.wurdeGedrueckt())
            {
                switch(dieTastatur.zeichen())
                {
                    case 'a': hatSpieler1.nachLinks(); break;
                    case 'd': hatSpieler1.nachRechts(); break;
                }  
                dieTastatur.weiter();
            }
            hatSpieler1.bewege();

    }while(!hatSpieler1.amLinkenRand() && !hatSpieler1.amRechtenRand() && !hatSpieler1.amOberenRand() && !hatSpieler1.amUnterenRand());



    hatSpieler1.gibFrei();
    hatBildschirm.gibFrei();


}
}
...zum Beitrag

Und Spieler1

import sum.kern.*;
import sum.werkzeuge.*;
/**
* @author 
* @version 
*/
public class Spieler1
{
// Objekte
Buntstift hatBuntstift;
Rechner hatRechner;
Bildschirm kenntBildschirm;
double zWinkel;

// Konstruktor
public Spieler1(Bildschirm pBildschirm, double pWinkel)
{
    kenntBildschirm = pBildschirm;
    hatBuntstift = new Buntstift();
    hatRechner = new Rechner();
    hatBuntstift.bewegeBis(hatRechner.ganzeZufallszahl(1, kenntBildschirm.breite() -10), hatRechner.ganzeZufallszahl(1, kenntBildschirm.hoehe() -10));
    hatBuntstift.setzeFuellmuster(Muster.GEFUELLT);
    hatBuntstift.setzeFarbe(Farbe.SCHWARZ);
    zWinkel = pWinkel;

}

// Dienste
public void zeichne()
{
    hatBuntstift.zeichneKreis(3);
    hatBuntstift.hoch();
    hatBuntstift.bewegeUm(-1);
    hatBuntstift.runter();
    hatBuntstift.setzeFarbe(Farbe.ROT);
    hatBuntstift.zeichneKreis(3);
    hatBuntstift.hoch();
    hatBuntstift.bewegeUm(1);
    hatBuntstift.runter();
    hatBuntstift.setzeFarbe(Farbe.SCHWARZ);
    hatBuntstift.zeichneKreis(3);
}
public void gibFrei()
{
    hatBuntstift.gibFrei();
}
public void nachRechts()
{
    hatBuntstift.dreheUm(-5);
    this.bewege();
}
public void nachLinks()
{
    hatBuntstift.dreheUm(5);
    this.bewege();
}
public void bewege()
{
    hatBuntstift.normal();
    hatBuntstift.bewegeUm(0.3);
    this.zeichne();
}
public void loesche()
{
    hatBuntstift.radiere();
    this.zeichne();
}
public double hPosition()
{
    return hatBuntstift.hPosition();
}
public double vPosition()
{
    return hatBuntstift.vPosition();
}
public boolean amOberenRand()
{
    return this.vPosition() <= 1 ;
}
public boolean amLinkenRand()
{
    return this.hPosition() <= 1;
}
private double Winkel()
{
    return this.Winkel();
}
public boolean amRechtenRand()
{
    return this.hPosition() > (kenntBildschirm.breite() - 1);    
}
public boolean amUnterenRand()
{
    return this.vPosition() > (kenntBildschirm.hoehe() - 1);
} 

}   
...zur Antwort