In Java einen Tannenbaum zeichnen



  • Wollt grad für einen aus meiner Klasse nen Tannenbaum zeichnen,
    mit Java, der soll so aussehen:

    @
           @    @    @
       @   @    @    @    @
                @
                @
                @
    

    Aber irgendwie hab ich ne endlose Schleife die immer nur den
    ganz links und rechts zeichnet, komm aber grad nicht drauf
    wo mein Denkfehler ist.

    Ich habe im Moment 2For-Schleifen, bräuchte meiner Logik nach jedoch 3 nur
    hab ich im Moment echt kein Kopf dazu, hab grad schon Probleme gehabt Moment
    richtig zu schreiben 😮

    Ich hatte es mir so gedacht mit i+hilf weiß ich wieviele Kreise gezeichnet
    werden müssen, nun bräucht ich einmal ne Schleife die nach rechts und links
    schwankt und immer die Kreise zeichnet, so viele wie es sein sollten.

    Hier mein bisheriges:

    for (int i = 0; i < 3; i++) {
    
    			for (int t = 0; t < i+hilf+1; t++) {
    				hilf++;
    				baum (g, x_wert+25*t, y_wert*t+25, length_wert, width_wert);
    				baum (g, x_wert-25*t, y_wert*t+25, length_wert, width_wert);
    
    			}
    		}
    

    Baum erwartet folgende Argumente:

    public void baum (Graphics g, int x, int y, int length, int width)
    

    Ne Lösung wäre mir recht, braucht auch keine Kommentare zu haben, wenn ich es
    sehe wird es mir sofort klar 🙂

    Vielen Dank 🙂

    Edit:
    Nachdem ich nun etwas gegessen habe und mir noch einmal darüber Gedanken machte
    kam ich zu folgender Lösung, aber sie funktioniert, immernoch nicht, und es
    ist weiterhin eine Endlossschleife:

    int hilf = 0;
    		for (int i = 0; i < 3; i++) {
    
    			hilf++;
    			int kreis = hilf+i;
    
    			for (int t = 0; t < kreis; t++) {
    				baum (g, x_wert+25*t, y_wert*t+25, length_wert, width_wert);
    				baum (g, x_wert-25*t, y_wert*t+25, length_wert, width_wert);
    			}
    		}
    

    Woran es allerdings liegt (reicht fürs erste ja einmal die Endlosschleife wegzubekommen),
    weiß ich nicht bzw. ich sehe keinen Grund weshalb es hier zu einer Endlosschleife
    kommt.

    Edit:

    Habe es jetzt:

    for (int i = 0; i < 3; i++) {
    
    			hilf++;
    			int kreis = hilf+i;
    			int y_aktueller_wert = y_wert+75*i;
    
    			for (int t = 0; t < kreis/2+1; t++) {
    				baum (g, x_wert+50*t, y_aktueller_wert, length_wert, width_wert);
    				baum (g, x_wert-50*t, y_aktueller_wert, length_wert, width_wert);
    			}
    		}
    

    War nur nen dummer Fehler der aus der Müdigkeit heraus entstanden ist.


Anmelden zum Antworten