Wir nutzen Cookies, um das allgemeine Benutzerelebnis zu verbessern. Mit der Nutzung unseres Wikis stimmst du der Nutzung von Cookies zu.

Case Sensing

Version vom 3. Februar 2014, 14:21 Uhr von Tohmis (Diskussion | Beiträge) (Beispiel: Link korrigiert)

Mit Case Sensing ist die Unterscheidung von Groß- und Kleinschreibung gemeint.

In Scratch existiert diese jedoch nicht direkt. So würde ein Gleich-Operator, bei dem ein "a" mit einem "A" verglichen wird immer "wahr/true" zurückgeben:

sage < [a] = [A] >

Case Sensing einbauen

Man kann, obwohl Scratch nicht unter Groß- und Kleinbuchstaben unterscheidet, mit Kostümen arbeiten und sich so selber einen "Case Sensor" bauen. Das funktioniert, denn beim Wechsel zu Kostümen wird zwischen Groß- und Kleinschreibung unterschieden!

Wechsel von Kostümen

Doch zunächst sollten wir uns das Verhalten, welches beim Wechsel von Kostümen verwendet wird, etwas genauer anschauen.

wechsle zu Kostüm (X)

In diesem Fall wird zu dem Kostüm gewechselt, welches den selben Namen wie die Variable "X" trägt. Ist X jedoch eine Zahl, wird zu der entsprechenden Kostümnummer gewechselt. Dies lässt sich wie folgt verhindern:

wechsle zu Kostüm (verbinde (x) [])

Der Verbinde-Block gibt immer Daten vom Datentyp "String" (Zeichenkette) zurück. Strings werden immer als Texte betrachtet. So kann man, indem man das erste Feld mit einer Variable/Zahl füllt und das zweite Feld leer lässt, Zahlen in Texte umwandeln. Nun wird nicht mehr zum Xten Kostüm gewechselt, sondern zum Kostüm mit dem Namen, der in der Variable X gespeichert ist.

Kostümnamen

Nun kommen wir zu den Kostümnamen. Es ist nicht mehr möglich zwei Kostümen den selben Namen zu geben. Auch wird bei der Namensvergabe nicht zwischen Groß- und Kleinschreibung unterschieden. Es ist also nicht möglich das erste Kostüm "A" und das zweite Kostüm "a" zu nennen.

Man kann aber das erste "A-1" und das zweite "a-2" nennen. Da beim Wechsel zum Kostüm zwischen Groß- und Kleinschreibung unterschieden wird, lässt sich so ein Case-Sensor bauen. Ein weiterer wichtiger Aspekt ist, dass nur gewechselt wird, wenn es auch tatsächlich ein Kostüm mit dem gesuchten Namen gibt. Gibt es kein Kostüm mit dem gesuchten Namen, wird dieser Block einfach ignoriert.

wechsle zu Kostüm (verbinde (x) [-1])
wechsle zu Kostüm (verbinde (x) [-2])

Hätten wir nun die Kostüme "A-1" und "a-2" und unser X wäre "A", würde zuerst zu "A-1" gewechselt werden. Da es dieses Kostüm gibt, wird es auch ausgeführt. Nun soll zu "A-2" gewechselt werden. Es gibt aber nur ein Kostüm mit dem Namen "a-2". Da es kein Kostüm mit dem gesuchten Namen gibt, bleibt das aktuelle Kostüm "A-1". Wir haben nun also einen funktionsfähigen Case-Sensor.

Beispiel

Ein Progamm, welches diesen verwendet, um Texte zu schreiben findest du hier: Case-sensitive-Letterstamping .


Code zum Einbinden ins Forum:
[wiki=de:Case Sensing]Case Sensing[/wiki]