BlueJ Zeichen, Dart-Pfeil

julian.veh

Bekanntes Mitglied
Hi
Ich habe erst seid kurzem Informatik und jetzt in den Ferien probiere ich schonmal etwas weiter zu kommen, als wir eigentlich sind.
Wir arbeiten mit BlueJ und mussten uns so eine Portable-Version herunterladen, wo schon alle Pakete integriert sind. Ich hoffe dass dies keine Umstände macht.
Im 3. Kapitel sind die While-Schleifen. Damit habe ich ein Malprogramm erstellt, das auch funktioniert.
Jetzt in Kapitel 4 soll man eine Dartscheibe und einen Pfeil machen.

Java:
do 
{
meinStift.runter();
meinStift.bewegeUm(10);
meinStift.radiere();
meinStift.dreheUm(180);
meinStift.bewegeUm(10);
meinStift.normal();
meinStift.hoch();
meinStift.dreheUm(180);
meinStift.bewegeUm(11);
} while(!dieMaus.istGedrueckt());

**ohne das radieren funktioniert es! dann kommt eine schwarze Linie.
😉
Danke schon im Vorraus
mfg Julian

***PS: bin kurz mittag essen, bitte nicht ärgerlich sein wenn ich innerhalb der nächsten 15 minuten inaktiv bin =)
lg




Also
ich weiß nicht wie ich das erklären soll :'(
mit dem Stift kann man zeichnen.
am anfang ist der Stift aber immer oben, also muss man ihn runter setzen
dreheUm = richtung ändern
bewegeUm(int) = wird um "int" in die richtung bewegt
radiere = radieren.

wenn das nicht reicht fragt einfach nochmal ich möchte nicht weitermachen ohne das richtig verstanden zu haben 🙂
lg
 
Zuletzt bearbeitet:
Also ohne nen bissl erklärung was meinStift ist und was die jeweiligen Methoden machen kann man da wenig zu sagen.
 
Für den Code solltest du die JAVA-Tags benutzen, steht auch rot über dem Antwortfeld...

Wo genau ist denn jetzt deine Frage? Von dem Code, was du geschrieben hast lässt sich überhaupt nichts sagen, nur dass es, in meinen Augen eine komische Logik hat.
 
besteht irgendeine Frage?
was gezeichnet wird, kann man doch Schritt für Schritt überprüfen, 180 Grad ist eine Drehung in die Gegenrichtung, ist das wirklich gewollt?

erst wird eine Linie gemalt, dann komplett wegradiert (in Gegenrichtung), am Ende nicht gemalt weil der Stift angehoben ist
 
entschuldigung
also ja es funktioniert nicht
achso

[Java]
...
[/Java]

ich bin nicht drauf gekommen was das ist ;D

und beim anmelden stand, man könne so Danke sagen oder so.
das würde ich natürlich gerne machen aber ich weiß nicht wie :-/

ok das mit danke habe ich gefunden
 
ist denn alles geklärt? noch nicht so deutlich 😉
wichtiger als Danke wäre unten 'Thema als "erledigt" markieren'
 
besteht irgendeine Frage?
was gezeichnet wird, kann man doch Schritt für Schritt überprüfen, 180 Grad ist eine Drehung in die Gegenrichtung, ist das wirklich gewollt?

erst wird eine Linie gemalt, dann komplett wegradiert (in Gegenrichtung), am Ende nicht gemalt weil der Stift angehoben ist



Also die Idee ist es
___ eine linie zu zeichnen, man sieht sie kurz, wird wieder wegradiert, 1 cm später wird wieder die Linies gezeichnet.... so wie ein Daumenkino
 
Du hast geschrieben "funktioniert nicht", aber was nicht funktioniert weiß hier leider keiner...
SlaterB hat oben geschrieben was bei deinem Code falsch sein könnte, hast du da mittlerweile was geändert oder so?

Edit: hatte das letzte von dir noch nicht gelesen... jetzt weiß man wenigstens was der Code machen soll. Ich würde mal vermuten, das geht so nicht, aber... kann man nicht sagen wenn man das ganze Stift-zeug nicht kennt.
 
Zuletzt bearbeitet:
Es geht nicht um Formulierungen, sondern um Code... du suchst ja einen Fehler im Code und fragst um einen Rat... was kann man dir nach dem jetzigen Stand antworten? "Jo, irgendwo da könnte ein Fehler sein... aber um die Fehlerquelle einzugrenzen: die Datei hat eine Endung ".java" " 😉
Poste also mehr Code. Oder am besten gleich ein KSKB.
 
wieder mal ein super Script, was euer Lehrer/Prof da hat.

Meine Empfehlung für deine Ferien:

such dir ein Einsteigertutorial und arbeite das durch... Wirst sehen, bringt dir deutlich mehr.

Irgendeine vorgegebene Klasse zu nehmen, die man weder versteht noch kennt, davon ein Objekt zu erzeugen und dann paar Methoden aufrufen, hat meiner Meinung nach mit Sprachverständnis absolut null zu tun!
 
Es geht nicht um Formulierungen, sondern um Code... du suchst ja einen Fehler im Code und fragst um einen Rat... was kann man dir nach dem jetzigen Stand antworten? "Jo, irgendwo da könnte ein Fehler sein... aber um die Fehlerquelle einzugrenzen: die Datei hat eine Endung ".java" " 😉
Poste also mehr Code. Oder am besten gleich ein KSKB.

werde ich machen
ich dachte ihr wüsstet so was gemeint ist, weil ich nämlich den code auf meinem computer geschreiben habe, aber nur am laptop internet habe ;D
thx
 
wieder mal ein super Script, was euer Lehrer/Prof da hat.

Meine Empfehlung für deine Ferien:

such dir ein Einsteigertutorial und arbeite das durch... Wirst sehen, bringt dir deutlich mehr.

Irgendeine vorgegebene Klasse zu nehmen, die man weder versteht noch kennt, davon ein Objekt zu erzeugen und dann paar Methoden aufrufen, hat meiner Meinung nach mit Sprachverständnis absolut null zu tun!

das ist wohl wahr. Aber ich möchte ja noch dazu im Unterricht glänzen.
 
Java:
import sum.kern.*;
/**
 * @author Julian Vehring
 * @version 14.10.2010
 */
public class Dart
{
    // Objekte
    Bildschirm derBildschirm;
    Stift meinStift;
    Maus dieMaus;
    Tastatur dieTastatur;
    

    // Konstruktor
    public Dart()
    {
        derBildschirm = new Bildschirm();
        meinStift = new Stift();
        dieMaus = new Maus();
        dieTastatur = new Tastatur();
    }

    // Dienste
    public void fuehreAus()
    {
        // Aktionsteil
        meinStift.bewegeBis(800,400);
        meinStift.zeichneKreis(20);
        meinStift.zeichneKreis(50);
        meinStift.zeichneKreis(80);
        meinStift.bewegeBis(60,20);
                
        do
        {
            meinStift.runter();
            meinStift.bewegeUm(10);
            meinStift.radiere();
            meinStift.dreheUm(180);
            meinStift.bewegeUm(10);
            meinStift.normal();
            meinStift.hoch();
            meinStift.dreheUm(180);
            meinStift.bewegeUm(11);
        } while(!dieMaus.istGedrueckt());
        
        
        
        
        // Aufraeumen
        meinStift.gibFrei();
        derBildschirm.gibFrei();
        dieMaus.gibFrei();
        dieTastatur.gibFrei();
    }
}
 
ich dachte ihr wüsstet so was gemeint ist, weil ich nämlich den code auf meinem computer geschreiben habe, aber nur am laptop internet habe ;D

Also ich kann nur für meine Kristallkugel sprechen, aber die ist im Moment in der Reparatur 🙂
Generell kannst du dir auch Debugausgaben machen, was genau die Stiftklasse macht, dann siehst du ggf. schon wo da was schiefläuft
 
das wirst du dadurch, dass du mehr Ahnung von Java Fundamentals hast, als der Rest. Du wirst dann auch verstehen, was dein Prof da fabriziert hat und auch eine Lösung auf o.g. Problem finden.

Java Tutorial interaktiv - Programmieren lernen mit Java
Das Tutorial beginnt wirklich bei Adam und Eva. Arbeite das bis Kaptiel 35 durch und du wirst einsehen, dass das sinnvoller ist... Ist interaktiv und mit vielen Beispielen/Quiz. Wennste schon das Engagement für sowas hast, wird dir so ein Tutorial mit Sicherheit mehr Spass machen.

edit: und du brauchst auch nicht mit dem Dankebutton herumwerfen 😉. auch wenn du dich ab und zu für die wirklich hilfreichen Posts bedankst, werden wir dir trotzdem weiterhin antworten 🙂.
 
Zuletzt bearbeitet:
@julian.veh
meine letzte Frage war, ob überhaupt noch das Thema offen war,
wenn dein Problem nicht geklärt ist, ist etwas merkwürdig, dass du an der Danke-Funktion kramst
--
so, gehen wir also mal von noch offenen Problem aus, wobei deine gesamten Postings noch keine einzige Frage, kein einziges "?" enthalten..
(dafür stellen alle 'Antworter' Fragen, die du kaum beantwortest, naja 😉 )

also ich finde immer noch, dass meine erste Antwort gut passt,
hast du etwas zum Punkt '180 Grad ist Gegendrehung' zu sagen?
was hälst du von meine Idee, alles Schritt für Schritt auszuprobieren?

einen fertigen Code, der irgendwas malt (was du auch nicht näher beschreibst..) wird bestimmt nicht kommen

noch ein Tipp:
auf
> while(!dieMaus.istGedrueckt());
und ähnliches vorerst verzichten, soweit möglich, lasse das Programm erstmal nur malen,
ohne Benutzerinteraktion
 
das wirst du dadurch, dass du mehr Ahnung von Java Fundamentals hast, als der Rest. Du wirst dann auch verstehen, was dein Prof da fabriziert hat und auch eine Lösung auf o.g. Problem finden.

Java Tutorial interaktiv - Programmieren lernen mit Java
Das Tutorial beginnt wirklich bei Adam und Eva. Arbeite das bis Kaptiel 35 durch und du wirst einsehen, dass das sinnvoller ist... Ist interaktiv und mit vielen Beispielen/Quiz. Wennste schon das Engagement für sowas hast, wird dir so ein Tutorial mit Sicherheit mehr Spass machen.

irgendwie kommt dein link nur wenn ich auf zitieren klicke und wenn ich ihn dann kopiere und einfüge kommt 404 not found ?
 
@julian.veh
meine letzte Frage war, ob überhaupt noch das Thema offen war,
wenn dein Problem nicht geklärt ist, ist etwas merkwürdig, dass du an der Danke-Funktion kramst
--
so, gehen wir also mal von noch offenen Problem aus, wobei deine gesamten Postings noch keine einzige Frage, kein einziges "?" enthalten..
(dafür stellen alle 'Antworter' Fragen, die du kaum beantwortest, naja 😉 )

also ich finde immer noch, dass meine erste Antwort gut passt,
hast du etwas zum Punkt '180 Grad ist Gegendrehung' zu sagen?
was hälst du von meine Idee, alles Schritt für Schritt auszuprobieren?

einen fertigen Code, der irgendwas malt (was du auch nicht näher beschreibst..) wird bestimmt nicht kommen

noch ein Tipp:
auf
> while(!dieMaus.istGedrueckt());
und ähnliches vorerst verzichten, soweit möglich, lasse das Programm erstmal nur malen,
ohne Benutzerinteraktion

Entschuldigung ich finde jedoch dass ich darauf eingegangen bin.
ich habe als erstes geschreiben, dass der Code ohne das Radieren funktioniert.(ist das nicht schritt für schritt? es gibt ja nur 2 schritte. mit dann ohne radieren)
danach habe ich meinen code auf einen usb stick geschoben um ihn hier zu posten, da waren schon wieder 3 neue einträge. ich hätte nie gedacht dass so viele so schnell was schreiben

ich dachte das ist gut wenn man sich immer für jede antwort bedankt.
 
komisch. muss an dir liegen. bei mir funktionierts

ja jetzt habe ich ihn auch.
aus meinem zitat ;D
darf ich mich dafür jetzt bedanken, ohne dass alle glauben die frage ist erledigt? denn das tutorial werde ich auf jeden Fall durcharbeiten 😉
wäre nämlich immernoch schön eine Lösung zu finden vllt kennt sich ja jemand mit dem sum.kern ding aus =D
 
Entschuldigung ich finde jedoch dass ich darauf eingegangen bin.
ich habe als erstes geschreiben, dass der Code ohne das Radieren funktioniert.(ist das nicht schritt für schritt? es gibt ja nur 2 schritte. mit dann ohne radieren)
erstes Fragezeichen, immerhin (sorry 😉 )

also ich stelle nochmal fest:
der Code malt eine Linie,
dreht dann um 180 und löscht diese Linie wieder,

am Ende ist nix zu sehen,
ist das nun ein Problem? was soll stattdessen passieren?
ist nicht völlig klar was passiert?

was ist die Frage?
 
erstes Fragezeichen, immerhin (sorry 😉 )

also ich stelle nochmal fest:
der Code malt eine Linie,
dreht dann um 180 und löscht diese Linie wieder,

am Ende ist nix zu sehen,
ist das nun ein Problem? was soll stattdessen passieren?
ist nicht völlig klar was passiert?

was ist die Frage?

ich probiere nochmal das zu erklären wie es funktinoieren sollte
halt wie ein daumen kino
jetzt müsst ihr euch ein koordinaten system vorstellen.

MALE: Linie von 10/10 zu 20/10
RADIERE: Linie von 10/10 zu 20/10
MALE: Linie von 11/10 zu 21/10
RADIERE: Linie von 11/10 zu 21/10
 
Ich denke er will was animieren, ich hab aber noch kein einziges Thread.sleep gesehen....

Ich misch mich mal ein:

1. WAS IST DEIN PROBLEM? ("Es geht nicht" ist keine Antwort) Aufgabenstellung würde helfen.
2. Poste die Klasse Stift!
 
achso...

Lösung:
MALE: Linie von 10/10 zu 20/10
WARTE ein bisschen
RADIERE: Linie von 10/10 zu 20/10
MALE: Linie von 11/10 zu 21/10
WARTE ein bisschen
RADIERE: Linie von 11/10 zu 21/10
usw...

sonst geht das zu schnell

btw ich würd flash benutzen ;-)
 
Ich denke er will was animieren, ich hab aber noch kein einziges Thread.sleep gesehen....

Ich misch mich mal ein:

1. WAS IST DEIN PROBLEM? ("Es geht nicht" ist keine Antwort) Aufgabenstellung würde helfen.
2. Poste die Klasse Stift!

1. Das mit dem Animieren stimmt! Der Pfeil wird nicht angezeigt. Alles geschiecht anscheinend gleichzeitig. aber es sollte so im sekunden takt passieren. Und so ist die Aufgabe auch gestellt.
ich dachte nur die if/while (weiß nicht so genau while schleife geht doch anders) wäre falsch

2. weiß nicht wie das geht/ wo die zu finden ist. wir haben nie über Klassen oder so gesprochen.
 
achso...

Lösung:
MALE: Linie von 10/10 zu 20/10
WARTE ein bisschen
RADIERE: Linie von 10/10 zu 20/10
MALE: Linie von 11/10 zu 21/10
WARTE ein bisschen
RADIERE: Linie von 11/10 zu 21/10
usw...

sonst geht das zu schnell

btw ich würd flash benutzen ;-)

😀😀 Flsh sorry ich habe seid 4 wochen informatik ;D das ist das einzige was ich kann abgesehen von html und css XD

Danke. aber entweder ist der Befehl Pause nicht da oder wir haben ihn noch nicht kennen gelernt.
 
2. weiß nicht wie das geht/ wo die zu finden ist. wir haben nie über Klassen oder so gesprochen.

geil :lol::lol::lol:. und dann den Schülern erst mal ne schöne Library um die Ohren hauen...


edit:
Danke. aber entweder ist der Befehl Pause nicht da oder wir haben ihn noch nicht kennen gelernt.
den Befehl hat die Slater eben schon gesagt!

Ich seh schon die nächste Frage:

Was ist ne InterruptedException?? kann man die essen??!

Gönn dir am besten Fachliteratur, dann kannste dir das alles selbst beantworten und wirst auch feststellen, dass Exceptions garnicht mal so gut schmecken und du sie (weg)werfen kannst 😉
 
Zuletzt bearbeitet:
@xhelp: SuM-Bibliotheken für BlueJ? Seh ich das richtig, dass da keine Sourcen dabei sind? Was ist den das für ein Müll!!! Das kann man doch keine Schüler geben!
 
Davon lese ich zum ersten Mal was... Dann musst du eben den Rat von ARadauer verfolgen oder etwas tiefgründiges als "geht nicht" schreiben.

@ARadauer, k.a., es scheinen die richtigen Libs zu sein und die Sources finde ich auch nicht... Auch von der Namensgebung sind dir etwas.... komisch... eben Schüler-Freundlich, aber nicht sinnvoll
 
Ich helfe gerne, aber so ist das sehr mühsam!

Natürlich funktoniert das! Die Frage ist warum funktioniert es bei dir nicht? Fehlermeldung, läuft es, tut sich nichts...


ich habe ja auf der ersten seite meinen kompletten code gepostet.
stelle dir den code vor ohne den teil mit dem radieren. Also nur zeichnen

dann ist rechts die dartscheibe der pfeil fliegt nur wird er immer länger, weil die alten pfeile nicht wegradiert werden.

Mit radieren kommen gar keine Pfeile mehr
der Pause code ändert nichts
 
Wer viel Zeit hat und Lust hat sich damit zu befassen so 20 minuten oder so 😀😀 wird sich wohl nicht schnell finden
countvoncount.net

oben auf den link "INFORMATIK"
Jahrgang 11 glaube ich da müsste "download blueJPortable" sein.
downloaden
der ordner heißt BlueJ
BlueJ/Porgramme/start_BlueJ
lg
 
zeig mal den Code mit eingebauter Pause,

dauert es wenigstens mit eingebauter Pause + ohne Radieren zeitlich länger oder wird auch dort der Pfeil ganz schnell gezeichnet?
 
zeig mal den Code mit eingebauter Pause,

dauert es wenigstens mit eingebauter Pause + ohne Radieren länger oder wird auch dort der Pfeil ganz schnell immer länger?

habe ich mich falsch ausgedrückt:

seid dem zeitpunkt zu dem ich radieren eingefügt habe kommt GARKEIN Pfeil mehr!
(Meine Vermutung: die Schleife ist falsch und alles wird sofort gemacht, nicht nacheinenader)
werde ich posten, dauert nur wieder kurz weil es auf dem computer ist ;D
lg
 
habe ich mich falsch ausgedrückt:

seid dem zeitpunkt zu dem ich radieren eingefügt habe kommt GARKEIN Pfeil mehr!
(Meine Vermutung: die Schleife ist falsch und alles wird sofort gemacht, nicht nacheinenader)
werde ich posten, dauert nur wieder kurz weil es auf dem computer ist ;D
lg

Java:
import sum.kern.*;
/**
 * @author Julian Vehring
 * @version 14.10.2010
 */
public class Dart
{
    // Objekte
    Bildschirm derBildschirm;
    Stift meinStift;
    Maus dieMaus;
    Tastatur dieTastatur;
    

    // Konstruktor
    public Dart()
    {
        derBildschirm = new Bildschirm();
        meinStift = new Stift();
        dieMaus = new Maus();
        dieTastatur = new Tastatur();
    }

    // Dienste
    public void fuehreAus()
    {
        // Aktionsteil
        meinStift.bewegeBis(800,400);
        meinStift.zeichneKreis(20);
        meinStift.zeichneKreis(50);
        meinStift.zeichneKreis(80);
        meinStift.bewegeBis(60,20);
                
        do
        {
            meinStift.runter();
            meinStift.bewegeUm(10);
            meinStift.radiere();
            meinStift.dreheUm(180);
            meinStift.bewegeUm(10);
            meinStift.normal();
            meinStift.hoch();
            meinStift.dreheUm(180);
            meinStift.bewegeUm(11);
            try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {}
        } while(!dieMaus.istGedrueckt());
        
        
        
        
        // Aufraeumen
        meinStift.gibFrei();
        derBildschirm.gibFrei();
        dieMaus.gibFrei();
        dieTastatur.gibFrei();
    }
}
 
seid dem zeitpunkt zu dem ich radieren eingefügt habe kommt GARKEIN Pfeil mehr!
(Meine Vermutung: die Schleife ist falsch und alles wird sofort gemacht, nicht nacheinenader)
das ist schon klar,
vielleicht solltest du das Radieren generell testweise auf 8 der 10 Punkte beschränken, damit man in jeden Fall noch ein wenig sieht

edit:
und deshalb solltest du den Code posten:
die Pause muss natürlich zwischen malen und radieren!
 

Zurück
Oben