
Saladplus
Mitglieder-
Gesamte Inhalte
12 -
Benutzer seit
-
Letzter Besuch
-
import sum.werkzeuge.*; import sum.kern.*; /** * @author * @version */ public class Test2 { // Objekte Kreis hatKreis; Kreis aktiverKreis; Rechner meinRechner; Bildschirm derBildschirm; Stift meinStift; Uhr dieUhr; Maus hatMaus; // Konstruktor public Test2() { derBildschirm = new Bildschirm(300, 300); meinRechner = new Rechner(); dieUhr = new Uhr(); hatMaus = new Maus(); aktiverKreis = null; } // Dienste public void fuehreAus() { do { hatKreis = new Kreis(); hatKreis.bewegeBis(meinRechner.ganzeZufallszahl(0, derBildschirm.breite()), meinRechner.ganzeZufallszahl(0, derBildschirm.hoehe())); hatKreis.zeichne(); dieUhr.warte(5000); if(meinRechner.wurzel(meinRechner.quadrat(hatMaus.hPosition() - hatKreis.hPosition()) + meinRechner.quadrat(hatMaus.vPosition() - hatKreis.vPosition())) < 10) { aktiverKreis = null; aktiverKreis = hatKreis; hatKreis.aktiviere(); } }while(!hatMaus.doppelKlick()); } } import sum.kern.*; /** * @author * @version */ public class Kreis { // Objekte Bildschirm kenntBildschirm; Buntstift meinStift; // Konstruktor public Kreis() { meinStift = new Buntstift(); } // Dienste public void zeichne() { meinStift.zeichneKreis(5); } public void aktiviere() { meinStift.setzeFarbe(Farbe.ROT); } public void deaktiviere() { meinStift.setzeFarbe(Farbe.SCHWARZ); } public void bewegeBis(int pH, int pV) { meinStift.bewegeBis(pH, pV); } public double hPosition() { return meinStift.hPosition(); } public double vPosition() { return meinStift.vPosition(); } }
-
Und nocheinmal ich, sorry für die vielen Fragen, aber ich brenne darauf mein Programm fertig zu stellen, und im Prinzip ist es fertig, mir fehlt nur dieser entscheidende Teil mit dem benennen... Ich habe mal ein Testprogramm geschrieben (so wie im letzten Beitrag beschrieben mit den Kreisen) ich weiß, dass die Bezeichnungen und schreibweisen nicht unbedingt den Richtlinien entsprechen, aber es ist nur ein Testprogramm. Könnte vielleicht jemand drüber schauen und mir erklären, wie ich jeden neu dazukommenden Kreis einen eigenen individuellen Namen geben kann, sodass ich die einzelnen Kreise auch beliebig aktivieren kann? Das Hauptprogramm: import sum.werkzeuge.*; import sum.kern.*; /** * @author * @version */ public class Test2 { // Objekte Kreis hatKreis; Kreis aktiverKreis; Rechner meinRechner; Bildschirm derBildschirm; Stift meinStift; Uhr dieUhr; Maus hatMaus; // Konstruktor public Test2() { derBildschirm = new Bildschirm(300, 300); meinRechner = new Rechner(); dieUhr = new Uhr(); hatMaus = new Maus(); aktiverKreis = null; } // Dienste public void fuehreAus() { do { hatKreis = new Kreis(); hatKreis.bewegeBis(meinRechner.ganzeZufallszahl(0, derBildschirm.breite()), meinRechner.ganzeZufallszahl(0, derBildschirm.hoehe())); hatKreis.zeichne(); dieUhr.warte(5000); if(meinRechner.wurzel(meinRechner.quadrat(hatMaus.hPosition() - hatKreis.hPosition()) + meinRechner.quadrat(hatMaus.vPosition() - hatKreis.vPosition())) < 10) { aktiverKreis = null; aktiverKreis = hatKreis; hatKreis.aktiviere(); } }while(!hatMaus.doppelKlick()); } } Und jetzt noch die Klasse Kreis: import sum.kern.*; /** * @author * @version */ public class Kreis { // Objekte Bildschirm kenntBildschirm; Buntstift meinStift; // Konstruktor public Kreis() { meinStift = new Buntstift(); } // Dienste public void zeichne() { meinStift.zeichneKreis(5); } public void aktiviere() { meinStift.setzeFarbe(Farbe.ROT); } public void deaktiviere() { meinStift.setzeFarbe(Farbe.SCHWARZ); } public void bewegeBis(int pH, int pV) { meinStift.bewegeBis(pH, pV); } public double hPosition() { return meinStift.hPosition(); } public double vPosition() { return meinStift.vPosition(); } }
-
hmmm oh man... ich sitze jetzt seit 10 Uhr an diesem Problem un komm keinen Schritt weiter :upps ich glaub ich bin einfach zu dumm -,- könnte mir vllt jemand schnell ein Beispiel Programm schreiben, in dem nach und nach zB mehrere Kreise erzeugt werden und die Kreise mit sich verändernden Zahlen benannt werden (1. erzeugter Kreis = Kreis1 2. erzeugter Kreis = Kreis 2, oder so etwas). Weil ich krieg es echt nicht mehr alleine hin... ich will einfach nur wissen wie ich mehrere Objekte im Verlauf des Spiels erzeugen und sie alle anders benennen kann, damit ich jedes beliebige Objekt auch ansprechen kann. Wenn sich jemand die paar Minuten nehmen würde, wär das echt Klasse. Denn ich bin langsam am verzweifeln... alles andere in meinem Programm könnte ich (theoretisch) programmieren... das lässt mir grad keine Ruhe Vielen Dank schonmal
-
wobei... bedeutet: dass ich im prinzip gar nicht die objekte unterscheiden kann? weil das muss ich ja können um zu sagen dass genau dieses eine Flugzeug das ich aktivieren will auch aktiviert wird
-
Genau das will ich! und das hab ich auch die ganze Zeit schon versucht, aber wie muss ich den Befehl schreiben, dass der String an den Namen angehängt wird?
-
das heißt ich müsste einfach eine ansteigende Zahl zB. X als Parameter für die Klasse Flugzeug übergeben und im Konstruktor der Klasse toString(X) schreiben? würde das gehen?
-
ich schreibe grade ein test Programm, um das mit der arrayList hinzubekommen... einfacher Aufbau: mehrere Kreise werden im Verlauf des Programms an zufälligen Stellen erzeugt. Mit der Maus kann man dann immer einen Kreis aktivieren. Den Befehl zum "Benennen" jedes neuen Kreises habe ich jetzt so geschrieben: ArrayList<Kreis> liste = new ArrayList<Kreis>(); for(int i = 0; i < 100000; i++) { Kreis hatKreis = new Kreis(); liste.add(hatKreis); } wie kann ich jetzt den einzelnen Kreisen, die bereits erzeugt wurden Befehle schicken?
-
array list? :confused: also wär das sowas wie eine abstrakte klasse der Klasse array, in der die feste Größe immer mit 1 addiert wird? oder wie muss ich mir das vorstellen?
-
das mit dem Überschreiben geht nicht, da ich mehrere Flugzeuge aufeinmal haben will, würd ich den Namen einfach überschreiben wäre nur immer ein Flugzeug erzeugt, oder..? Danke srea, ich werd versuchen deinen Vorschlag umzusetzen... eine Frage noch: ich habe noch nie mit arrays gearbeitet... ist das eine klasse, die ich erst noch schreiben/erzeugen muss?
-
Ich bin mir aber nicht ganz sicher, ob das mein Problem löst... also ich versuchs nochmal zu erklären: dadurch dass ich nicht sofort die verschiedenen Flugzeuge erzeuge sondern erst im Verlauf des Spiels, kann ich ja nicht einfach sagen dass das erste Objekt Flugzeug1 heißt usw.. ich dachte mir, ich könnte einen Befehl schreiben, bei dem eine Zahl (zB. X) mit jedem erzeugten Flugzeug um 1 addiert wird. das is ja auch noch kein Problem, jetzt muss ich nur wissen wie ich dem Programm sag, dass das 6. erzeugte Flugzeug (also in dem Fall X=6) in den Namen Flugzeug6 umbenannt wird. gibts da irgendeine Schreibweise dafür? also irgendwie Flugzeug(int X) oder Flugzeug[int X] oder oder oder... sorry, vllt bin ich auch nur schwer von begriff:rolleyes:
-
Danke für die schnelle Antwort. Verzeih mir die Frage, aber was ist ein Objektarray? bin halt noch ein Anfänger... würd mir schon reichne wenn ich wüsste was das bedeutet, und wofür die Abkürzungen stehen.
-
Hey, ich lerne seit etwa einem Jahr mit dem Programm Blue J das Programmieren mit Java. Jetzt, in den Ferien, wollte ich mal ein etwas größeres Programm selber schreiben. Es handelt sich um eine "Tower Simulation" in der man die Aufgaben eines Fluglotsen übernimmt. Mein großes Problem ist: ich will einen Befehl schreiben, der in zufälligen Abständen immer neue Flugzeuge erzeugt, damit nicht irgendwann kein "Nachschub" mehr vorhanden ist. Wie ich den Befehl an sich schreibe, weiß ich, das Problem ist, ich weiß nicht, wie ich die erzeugten Flugzeuge benennen soll. Ich hatte daran gedacht, an den Objektnamen eine Variabel zu hängen (zB. FlugzeugX) die mit jedem erzeugten Flugzeug um 1 größer wird. (also Flugzeug1, Flugzeug2...) Aber das scheitert daran, dass ich nicht weiß, wie ich das im Programm schreiben soll. Denn wenn ich zB. schreibe X = 1, dann erkennt das Programm das X am ende vom Namen vom Flugzeug (FlugzeugX) nicht als Variabel. Könnte mir jemand erklären, wie ich sagen kann, dass X eine Variabel ist, die an dem Namen angehängt ist? Ich hoffe, ich habe mein Problem deutlich erklärt, wenn nicht, bitte nachfragen Für schnelle Antworten wäre ich sehr dankbar