Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > Sonstige Programmiersprachen

Sonstige Programmiersprachen Das Sammel-Forum für alle weiteren Programmiersprachen wie z.B. Assembler, Delphi, Pascal, C# (C-Sharp), Java usw.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26903, Antworten: 4218
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3325, Antworten: 122
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 309, Antworten: 19
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7641, Antworten: 185
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 19, Antworten: 0
Gehe zum ersten neuen Beitrag Captur 2.3 (Lion)
Aufrufe: 21, Antworten: 0
Gehe zum ersten neuen Beitrag Acer Aspire 8745ZG fährt...
Aufrufe: 56, Antworten: 6
Gehe zum ersten neuen Beitrag Rechner fährt herunter,...
Aufrufe: 145, Antworten: 9
Gehe zum ersten neuen Beitrag avs4you_com Lizenz oder Abo?
Aufrufe: 70, Antworten: 4
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50942, Antworten: 1395
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25.08.2008, 22:21   #1 (Direktlink)
Forenmaskottchen
 
Benutzerbild von Benne123
 
Registriert seit: 20.01.2007
Ort: C:\D\NRW\Ddorf\Eller
Beiträge: 850
Standard BlueJ Frage

Hey,
hab in der Schule nun Informatik und wir arbeiten mit BlueJ. Hab nur eine Frage.
Wir sollen nun ein Haus mit Stockwerken (als Klasse) schreiben. Und jetzt sollen wir noch was hinzufügen, damit man das Haus vergrössern bzw. verkleinern kann, damit da noch andere Häuser hinkönnen und damit das nachher wie einer Landschaft wirkt. Weiss nur nicht so genau wie. Das Haus ist fertig, nur mir fehlt das mit der Grösse halt noch. Kann mir da jemand helfen?
Muss ich das so machen, dass ich jedes Teil einzeln vergrösser oder gibt es da ne Möglichkeit, dass ich eingebe, um wie viel Prozent sich das komplette Haus vergrössern bzw. verkleinern soll?


Hier mal der Text bis dato:
Code:
/**
 * Write a description of class HausStockwerk here.
 * 
 * @Benedikt B.
 * @1.0
 */
public class HausStockwerk {
    
    private int x;
    private Quadrat wand;
    private Quadrat fenster1;
    private Quadrat fenster2;
    private Quadrat fenster3;
    private Dreieck dach;
    private Rechteck tür;
    
    public HausStockwerk()  {
        wand        = new Quadrat();
        fenster1    = new Quadrat();
        fenster2    = new Quadrat();
        fenster3    = new Quadrat();
        dach        = new Dreieck();
        tür         = new Rechteck();
        
        wand.groesseAendern(100);
        wand.farbeAendern("hellgrau");
        wand.horizontalBewegen(20);
        wand.vertikalBewegen(20);
       
        fenster1.horizontalBewegen(33);
        fenster1.vertikalBewegen(30);
        fenster1.farbeAendern("dunkelgrau");
        fenster1.groesseAendern(20);
        
        fenster2.horizontalBewegen(85);
        fenster2.vertikalBewegen(30);
        fenster2.farbeAendern("dunkelgrau");
        fenster2.groesseAendern(20);
        
        fenster3.horizontalBewegen(85);
        fenster3.vertikalBewegen(70);
        fenster3.farbeAendern("dunkelgrau");
        fenster3.groesseAendern(20);
        
        dach.farbeAendern("rot");
        dach.groesseAendern(60,150);
        dach.vertikalBewegen(-2);
        dach.horizontalBewegen(79);
       
        tür.farbeAendern("gruen");
        tür.breiteAendern(25);
        tür.hoeheAendern(50);
        tür.horizontalBewegen(33);
        tür.vertikalBewegen(70);
        
        
        x = 0;
    }
    
    public void sichtbarMachen() {
        wand.sichtbarMachen();
        fenster1.sichtbarMachen();
        fenster2.sichtbarMachen();
        fenster3.sichtbarMachen();
        dach.sichtbarMachen();
        tür.sichtbarMachen();
        
    }

    public void groesseAendern(int neueGroesse) {
             
    }

    
    public int sampleMethod(int y)
    {
        
        return x + y;
    }
}
Vielen Dank im Voraus
Benne
__________________

Benne123 ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 25.08.2008, 23:19   #2 (Direktlink)
Dauergast
 
Registriert seit: 09.05.2004
Beiträge: 1.543
Standard

Zitat:
Wir sollen nun ein Haus mit Stockwerken (als Klasse) schreiben. Und jetzt sollen wir noch was hinzufügen, damit man das Haus vergrössern bzw. verkleinern kann, damit da noch andere Häuser hinkönnen und damit das nachher wie einer Landschaft wirkt.
Also ich sehe momentan nur eine Klasse (HausStockwerk), die, rein logisch, grundlegende Eigenschaften von einer anderen Klasse (zum Beispiel, ganz banal, 'Haus') erben sollte. Und eben die fehlt. Darin sollten dann meiner Meinung nach die entsprechenden Attribute (Groesse des Hauses, ...) definiert werden.
Nebenbei: Mir erschliesst sich nicht so ganz, warum du die 'Landschaft' in die Klasse implementieren moechtest? Die entsteht doch mehr oder weniger automatisch, in dem du spaeter mehrere Instanzen der Basisklasse ('Haus') erzeugst?!

Bitte beschreib, moeglichst nochmal ein wenig abstrakter, was genau du moechtest, bzw. was die Aufgabenstellung von dir will.
Matthias S. ist offline   Mit Zitat antworten
Alt 25.08.2008, 23:39   #3 (Direktlink)
Forenmaskottchen
 
Benutzerbild von Benne123
 
Registriert seit: 20.01.2007
Ort: C:\D\NRW\Ddorf\Eller
Beiträge: 850
Standard

Ja das Haus ist ja schon fertig. Wurde mit Quadraten, Dreiecken, Rechtecken gemacht. Und dies ist als Klasse: So sieht es imo aus:


Und jetzt mache ich die beiden Häuser(Stockwerk) sichtbar. Jedoch sind beide gleichgross und stehen nebeneinander. Und die Aufgabe ist nun, den Text eines Hauses so zu verändern, dass ich es vergrössern bzw. verkleinern kann, damit es weiter nah bzw. weg erscheint.
Die Aufgabe von meinem Lehrer genau lautet:
"Erstelle ein BlueJ-Projekt, mit dem die Grösse des Hauses geändert werden kann."
Also so soll das Ergebnis aussehen (rechtes Bild).Bitte nur die Häuser beachten, der Rest ist egal > Gras, Blumen usw.:

Das mein ich mit grösser und kleiner. (ist nur die Aufgabenstellung als PDF von meinem Lehrer.)

So sieht es imo bei mir aus:

Ich habe demnach HausStockwerk1 und HausStockwerk2 sichtbar gemacht. Und nun soll ich den Text eines Hauses so schreiben, dass ich es beliebig grösser und kleiner machen kann, damit halt bald sowas entsteht, wie auf dem 2. Bild oben.

War mit der Landschaft anders gemeint, ist aber unwichtig. Geht jetzt erstmal nur um das Vergrössern und Verkleinern.

Hoffe du/ihr weisst/wisst nun was ich meine
__________________

Benne123 ist offline   Mit Zitat antworten
Alt 26.08.2008, 00:09   #4 (Direktlink)
Dauergast
 
Registriert seit: 09.05.2004
Beiträge: 1.543
Standard

Zitat:
Und die Aufgabe ist nun, den Text eines Hauses so zu verändern, dass ich es vergrössern bzw. verkleinern kann, damit es weiter nah bzw. weg erscheint.
Ist doch ganz easy. Die Funktionen sind bereits implementiert ( tür.horizontalBewegen(33);, tür.vertikalBewegen(70); etc... gilt analog fuer Fenster und was weiss ich noch), werden aber mit statischen Parametern aufgerufen.
Wenn du entsprechenden Methode aus der 'HausStockwer'-Klasse aufrufen kannst, muessen die imo entweder public oder friend (oder gibts das nur bei CPP? Bin mir grad nicht sicher) sein. In erstem Fall koenntest du die Methode ueberall in deinem Programm aufrufen um Position und Groesse zu veraendern. Alternativ koenntest du die Methode 'HausStockwerk ()' auch ueberladen und die entsprechenden Parameter bei Aufruf zum Beispiel zufallsgenerieren, durch den User eingeben lassen, oder aehnliches.
Du siehst: es gibt tausend Loesungen.
Matthias S. ist offline   Mit Zitat antworten
Alt 26.08.2008, 00:22   #5 (Direktlink)
Forenmaskottchen
 
Benutzerbild von Benne123
 
Registriert seit: 20.01.2007
Ort: C:\D\NRW\Ddorf\Eller
Beiträge: 850
Standard

Was ich halt nicht machen wollte, bzw. dachte das es anders geht, jedes Teil einzeln verkleinern müssen. Verschieben muss ich sowieso noch.
Dachte halt, dass es sowas gibt, damit der Benutzer (öffentlich) es auf einmal vergrössern kann, also wenn das Haus nun z.B. 20m² hat, dass er es auf 40m² direkt vergrössern kann (soll jetzt nur ein Beispiel zum Verdeutlichen meines Gedankens sein).

Also muss ich nun bei jedem Teil (Fenster, Wand usw.) einzeln schreiben: groesseAendern auf so und so? Ich meinte nämlich, ob es möglich ist, dass ich das nicht bei jedem hinschreiben muss, sondern, dass ich das einmal schreibe und es für alles gilt. Also wenn der Benutzer sagt: Vergrössern um 50, dass sich das komplette Haus um "50" vergrössert und net nur ein Teil. Weisst was ich meine??
__________________

Benne123 ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 26.08.2008, 00:33   #6 (Direktlink)
Dauergast
 
Registriert seit: 09.05.2004
Beiträge: 1.543
Standard

Zitat:
Dachte halt, dass es sowas gibt, damit der Benutzer (öffentlich) es auf einmal vergrössern kann, also wenn das Haus nun z.B. 20m² hat, dass er es auf 40m² direkt vergrössern kann (soll jetzt nur ein Beispiel zum Verdeutlichen meines Gedankens sein).
Du koenntest dir eine Funktion schreiben, die aus der Eingabe '40qm' die entsprechenden Werte fuer alle Variablen/Attribute errechnet. Letztlich muesstest du die Werte, die dabei rauskommen, aber trotzdem noch einzeln an die o.g. Methode uebergeben, um dann deine korrekte Anzeige zu erhalten.

Zitat:
Also muss ich nun bei jedem Teil (Fenster, Wand usw.) einzeln schreiben: groesseAendern auf so und so? Ich meinte nämlich, ob es möglich ist, dass ich das nicht bei jedem hinschreiben muss, sondern, dass ich das einmal schreibe und es für alles gilt. Also wenn der Benutzer sagt: Vergrössern um 50, dass sich das komplette Haus um "50" vergrössert und net nur ein Teil. Weisst was ich meine??
Nein, das ist nicht moeglich. Die Variablen erscheinen fuer dein Prgramm ja absolut unabhaengig voneinander. Diese ganze Geschichte mit dem Haus wurde ja nur zum Verstaendnis darumkonstruiert.

EDIT: Okay, du koenntest quasi eine 'set-all'-Funktion schreiben, die mehrere Parameter bekommt und die dann an die Methoden uebergibt. Dann haettest du den Schreibaufwand nur einmal. Aber imo ist das kein allzu guter Stil.
Matthias S. ist offline   Mit Zitat antworten
Alt 26.08.2008, 07:24   #7 (Direktlink)
Forenmaskottchen
 
Benutzerbild von Benne123
 
Registriert seit: 20.01.2007
Ort: C:\D\NRW\Ddorf\Eller
Beiträge: 850
Standard

Vielen lieben Dank für deine Hilfe. Werde mich dann heute Nachmittag (wenn ich hier sein sollte) mal dadran setzen.
__________________

Benne123 ist offline   Mit Zitat antworten
Alt 09.11.2008, 21:14   #8 (Direktlink)
Forenmaskottchen
 
Benutzerbild von Benne123
 
Registriert seit: 20.01.2007
Ort: C:\D\NRW\Ddorf\Eller
Beiträge: 850
Standard

Hey, hab mal wieder ne Frage zu BlueJ:

Wir sollen eine Schatzsuche programmieren. Also enthalten sein soll: Ein Schatz, der sich bei jedem Neustart des Spiels, an eine andere Stelle setzt.
Dann halt die Maus und wenn man klickt, soll angezeigt werden, wie weit man noch entfernt ist.
Dies hab ich nun auch schon soweit geschafft.

Jetzt fehlt mir aber noch eine Sache: Wenn ich den Schatz treffe (+/- 10 oder 20 Pixel whatever, kann ich ja einstellen), soll der Schatz als gelber Kreis oder so dargestellt werden, damit man ihn halt sehen kann und es soll ein text erscheinen, der z.B. Glückwunsch sagt.

Wisst ihr, wie ich das meine bzw. kann mir jemand sagen, wie ich weiter vorgehen muss, damit ich mein Ziel erreiche?

Mein Text im Moment:

Zitat:
public class Vorlage {

TurtleGK turtle;

int r, distX, distY, schatzX, schatzY, dist, startX, startY, actualX, actualY;
/**
* Constructor for objects of class Haus
*/
public Vorlage() {
turtle = Leinwand.getTurtle();
}

/**
* Benutzersteuerung des Projektes.
* Diese Vorlage kann Gerüst für die Zeichnprogramme des
* Kurses benutzt werden.
*/
public void run() {
turtle.setBackground("weiss");
while (!turtle.mouseIsDoubleClicked()) {
double schatzX = ((Math.random())*371)+r;
double schatzY = ((Math.random())*371)+r;

while (true){
turtle.delay(5);
r = 5;

if (turtle.mouseIsLeftClicked()) {
actualX = turtle.getMouseX();
actualY = turtle.getMouseY();
turtle.drawCircle(actualX, actualY, r);
double distX = actualX - schatzX;
double distY = actualY - schatzY;

int dist = (int)(Math.sqrt(distX*distX+distY*distY));
turtle.setForeground("weiss");
turtle.fillRect(0,0,50,50);
turtle.setForeground("schwarz");

turtle.drawString(""+dist,10,10);


while(true){
turtle.delay(5);
if(!turtle.mouseIsLeftClicked())
break;
}
}
}
}
}
}
__________________

Benne123 ist offline   Mit Zitat antworten
Antwort

  Paules-PC-Forum.de > Programmierung > Sonstige Programmiersprachen

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an




Alle Zeitangaben in WEZ +2. Es ist jetzt 04:50 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2