Java Turtle Grafik

XHotSniperX

Lt. Junior Grade
Registriert
Jan. 2008
Beiträge
472
Hallo

Die Aufgabe ist relativ einfach eigentlich. Siehe Anhänge.

Ich habe mehr oder weniger richtig (a), (b), (c), (d) gemacht und möchte jetzt bei (e) nur mal testen, ob überhaupt etwas gezeichnet wird, wenn ich die Schildkröte bewege.

Code:

Code:
package Praxis;

import Praxis.ImageWindow;
import Praxis.Turtle;

public class BasicTurtle {

  public static void main(String args[]) {

	ImageWindow w = new ImageWindow(500,500);

    
    Turtle akan = new Turtle(w);
    akan.stift(0);
    akan.bewegen(30, 0, 0, 0);
    
    akan.w.openWindow();
    akan.w.redraw();
  }

}

Code:
package Praxis;

public class Turtle {
	
	ImageWindow w;
	int x;
	int y;
	int richtung; // xRichtung:0, yRichtung:1, -xRichtung:2, -yRichtung:3
	int stift; // stift_oben:0, stift_unten:1
	
	public Turtle(ImageWindow f){
		x = 249;
		y = 249;
		richtung = 0;
		stift = 0;
		w = f;
	}
	
	void stift(int a){
		if(a==0)
			stift = 1;
		if(a==1)
			stift = 0;
	}
	
	void drehung(int b){
		if(b>0 && b%90==0)
			b += b/90;
		if(b<0 && b%90==0)
			b += b/90;
	}
	
	void bewegen(int s, int r, int g, int b){
		if (s==0)
			s = 1;
		if (stift == 0){
			if (richtung == 0)
				x += s;
			else if (richtung == 1)
				y += s;
			else if (richtung == 2)
				x -= s;
			else if (richtung == 3)
				y -= s;
		}
		if (stift == 1){
			if (richtung == 0){
				for(int i = 0; i<s; i++)
					w.setPixel(x, y, r, g, b);
				x += s;
			}
			else if (richtung == 1){
				for(int i = 0; i<s; i++)
					w.setPixel(x, y, r, g, b);
				y += s;
			}	
			else if (richtung == 2){
				for(int i = 0; i<s; i++)
					w.setPixel(x, y, r, g, b);
				x -= s;
			}	
			else if (richtung == 3){
				for(int i = 0; i<s; i++)
					w.setPixel(x, y, r, g, b);
				y -= s;
			}	
		}
	}
	
}

Wenn ich das ausführ, kommt leider nur das Fenster und der Stift malt leider nichts. wieso?? Eigentlich sollte die Turtle "akan" um 30 Pixel ja nach rechts bewegt werden und dabei auch malen, weil der Stift eine Zeile davor runtergesetzt wird. Wieso klappt das aber nicht?

Ich hoffe ihr könnt mir helfen. Vielen Dank im Vorraus!
 

Anhänge

  • aufgabepart1.jpg
    aufgabepart1.jpg
    218,5 KB · Aufrufe: 239
  • aufgabepart2.jpg
    aufgabepart2.jpg
    120,6 KB · Aufrufe: 361
Zuletzt bearbeitet:
Die ist kein (Haus)aufgabenforum. Es hat seinen Grund, warum du die Aufgaben machen sollst und nicht andere sie hier für dich lösen sollen.

Es gibt bestimmt andere, die die selbe Aufgabe haben (je nach dem wo du bist Mitschüler, Kommilitonen, ...), die kann man auch mal fragen. Oder sogar den Aufgabensteller um Hilfe fragen. Ist übrigens nicht schlimm, sondern wird eher positiv wahrgenommen. Immerhin zeigt man, dass man die Aufgabe selbst bearbeitet hat und sie nicht von Foren-Usern hat machen lassen...
 
@1668mib:
die ganze sache da oben habe ich selber gemacht. ich bete niemanden die aufgabe für mich zu lösen. da du anscheinend nicht mal weisst um was es geht, bitte lass es sein beim nächsten mal.. danke
 
Code:
stift = 0;
Vielleicht mal auf 1 setzen? Ich kenn den Rest des Codes nicht, mich würde eher interessieren was die anderen Funktionen machen. Läuft das über Java oder per Framework?
 
@DerPapaSchlumpf: Nur mal so... das von dir genannte Attribut ist 1. Siehe Aufruf von "stift"...

@XHotSniperX: Ich weiß nicht worum es geht? Ich kann die Aufgabenstellung sehr wohl lesen. Du könntest ja mal anstoßen, warum du die Aufgabe bearbeitest...

Und nur mal so... du malst den Stift halt immer an der selben Stelle, da bringt auch die Schleife rum rum nichts ...

Und nur weil es bei dir zig mal durchging, dass du Übungsaufgaben gepostet hast, widerspricht es dennoch den Foren-Regeln.
 
Zuletzt bearbeitet:
das mit dem stift ist bisschen blöd gelöst von mir. also ich habs so gemacht, dass wenn man stift = 0 eingibt, dass die stift methode in der turtle klasse den stift dann in die andere position kehrt. also statt 0 dann 1.. und deswegen habe ich da ne 0 gesetzt, weil ich ja will, dass die schildkröte malen soll.

das ganze läuft über java. ich weiss nicht was du mit framework meinst :)
Ergänzung ()

@1668mib

danke für deine antwort. tut mir leid, wenn ich gegen forenregeln verstosse aber ich dachte man darf hier programmierprobleme fragen, wenn man selber auch was gemacht hat und das habe ich :)
darf man hier also keine programmierfragen stellen, falls es um ne schule geht? dann merk ich mir das.

du hast recht mit dem stift. ich sehe nur einen Punkt in der Mitte, aber wieso bringt die Schleife denn nichts?
 
Hausaufgaben/Übungsaufgaben usw haben hier nichts zu suchen, weil sie ja der eigenen Übung dienen. Ein Forum ist dazu da um Hilfe zu bieten und nicht um Faulheit zu fördern.

Eine Grauzone ist es, wenn es halt um das Lösen von Probleme in der eigenen Realisierung geht... aber dafür braucht man die Aufgabenstellung ja nicht zu kennen ...

Die Schleife bringt nichts, weil du immer an der selben x|y-Position zeichnest... entweder addierst/subtrahierst du den i-Wert immer zur entsprechenden Ordinate dazu, oder du veränderst das x bzw. y in jeder Schleifen-Iteration ...
 
danke und der fehler ist mir jetzt wirklich peinlich :) meine augen waren glaub total woanders.

aber schau, das forum hat mir jetzt geholfen und ich kann weiter machen.. ich finde das hat absolut nichts mit faulheit zu tun.

egal, ich danke euch beiden auf jeden fall!
 
Zurück
Oben