BlueJ Tastaturabfrage?

1 Antwort

Also ganz ehrlich.. ich verstehe wirklich nicht, wie ihr alle das immer hinbekommt. Wenn ich Code schreibe und dann hierher via Copy&Paste transferiere, sieht der Code doch auch nicht so unformatiert aus. 😐

Um größere Code-Abschnitte zu posten, kannst du https://hastebin.com/ oder https://pastebin.com/ nutzen. Code (formatiert) kopieren, passende Sprache für das Syntax-Highlighting auswählen, speichern und dann die generierte URL hier posten.

Aber das alles ist an dieser Stelle nicht notwendig. Was du viel eher einmal schauen musst, ist, was GLOOP bezüglich der Tastatur für Möglichkeiten anbietet.

Du kannst dir zunächst einmal die Dokumentation von GLOOP herunterladen: https://www.brd.nrw.de/lerntreffs/informatik/structure/material/sek2/einfuehrungen/gloop.php

Ich weiß nicht, wie aktuell diese ist, aber ich glaube auch kaum, dass sich da groß etwas ändert.

Auf Seite 20 werden die Inhalte gelistet, auf die von außen zugegriffen werden kann. Da wäre zum Beispiel diese Methode, mit der du arbeiten kannst:

boolean istGedrueckt(char pT)

Praxisbeispiel:

if (istGedrueckt('1')) {
  // do something ...
}

Noch ein paar Anmerkungen zu deinem Code:

  • Wozu ist denn das binäre AND notwendig bzw. wieso verwendest du nicht das logische?
  • Deine Methode hat bereits einen Doc-Kommentar, wozu dann noch ein weiterer Kommentar mit der selben Aussage?
  • Die Bedeutung der Variable v wird aufgrund des Namens nicht ersichtlich.
  • Verwende Leerzeichen bei Aufzählungen, um die Zeichen mehr voneinander zu trennen und den Code lesbarer zu gestalten.
Erst einmal vielen Dank dafür hat super geklappt^^ Manchmal ist die Lösung zu simpel.
  • wo ist der Unterschied zwischen binär und logisch?
  • Die Auskommentierung wird zum schluss Korrigiert sry^^
  • v war eine variable dafür dass die Kamera langsam auf die Dartscheibe zufliegt da zoom für die Z-Koordinate steht und Z somit grösser werden muss
  • Welche Aufzählungen meinst du?
  • wenn du willst kann ich dir mal den kompletten Quellcode schicken


0
@Tarzan2108

Zuerst und auch im Folgenden muss ich mich selbst wegen der Begrifflichkeiten korrigieren: Binäre Operatoren sind etwas anderes, als das, worauf ich hinaus wollte. Ich beziehe mich folgend auf den Unterschied zwischen Kurzschlussoperatoren (short-circuiting) und Nicht-Kurzschlussoperatoren (not short-circuiting).

Kurzschlussoperatoren sind && und ||. In der Java-Sprachspezifikation werden sie Conditional-AND und Conditional-OR genannt. Der ternäre Operator (?:) wird dort ebenfalls aufgeführt.

Kurzschlussoperatoren werten zuallererst nur den linksseitigen Ausdruck aus und entscheiden dann, ob auch der rechte Ausdruck ausgewertet werden muss. Dies ist in diesen Fällen sinnvoll:

boolean a = false;
boolean b = true;

boolean c = a && b; // false
boolean d = b || a; // true

Wenn der erste Wert bei einem logischen AND bereits false ist, ist auch das Gesamtergebnis unwahr. Die Auswertung des rechten Ausdrucks kann sich der Operator von daher sparen. Bei einem OR ist es ähnlich. Nur einer der Operanden muss wahr sein, um das Endergebnis wahr werden zu lassen. Wenn es der erste Operand bereits ist, wird der Zweite außer Acht gelassen.

Dies schlägt sich vor allem dann nieder, wenn die Operanden durch Funktionen repräsentiert werden, die teure Operationen ausführen müssen, um ihren Wert zu berechnen:

if ((generateRandomNumber() == getPi()) && (Math.sqrt(42) == xyz)) {
  // ...
}

Mit den Operatoren |, & und ^ hingegen erzwingst du die Auswertung beider Seiten. Dies kann sinnvoll sein (bzw. deren Nutzung ist ein need-to), wenn mehrere Operanden zwar auf ein boolsches Endergebnis geprüft werden sollen, allerdings auch noch eigene Seiteneffekte auf den Programmfluss haben. welche unbedingt ausgeführt werden müssen.

wo ist der Unterschied zwischen binär und logisch?

Dennoch hierzu, - der Unterschied zwischen bitweisen und logischen Operatoren ist, dass der logische Operator nur auf boolsche Ausdrücke angewandt werden kann. Mit den bitweisen Operatoren hingegen werden binäre Operationen an den Operanden vorgenommen, sie können für Berechnungen verwendet werden:

int result = 1 & 2;
System.out.println(result); // output: 0

Berechnung in Binärcode betrachtet:

  0001
& 0010
  0000
v war eine variable (...)

Dann gib der Variable einen treffenden Namen, der dies ausdrückt, wie z.B. kameraGeschwindigkeit. Umso eindeutiger Bezeichner gewählt werden, umso weniger Kommentare sind letztendlich notwendig, da sich der Code dann bereits selbst erklärt.

Welche Aufzählungen meinst du?

Diese:

Kamera1.setzePosition(0,400,zoom);

Besser:

Kamera1.setzePosition(0, 400, zoom);
wenn du willst kann ich dir mal den kompletten Quellcode schicken

Nicht notwendig.

1