Einstieg in das Thema
Was brauchst du als Basiswissen?
Das bisherige Wissen zu JavaScript ist
wichtig.
Worum geht es?
Manchmal muss etwas geprüft werden und in
Abhängigkeit vom Ergebnis etwas getan oder auch
gelassen werden. Man sagt, der Programmfluss
wird verzweigt. Und deshalb reden wir
von Verzweigungen.
Was ist das Ziel?
Am Ende weißt du, wie man Verzweigungen
schreibt und was diese bewirken. Weiterhin
hast du dein Wissen über Zeichenketten
vertieft.
Erarbeitung
Aufgaben zur Erarbeitung
Basis ist die Datei
Galgenraten
Aufgabe 1
Was bedeutet let neuesVerstecktesWort = ""; in Zeile 78?
Aufgabe 2
Ab Zeile 80 findest du eine Schleife. Wie oft wird diese Schleife durchlaufen?
Aufgabe 3
Was erhält man mit geheimesWort[i]?
Aufgabe 4
Wann ist geheimesWort[i] == geratenerBuchstabe wahr?
Aufgabe 5
Was passiert bei neuesVerstecktesWort += geratenerBuchstabe; (Zeile 82)? Erkläre das auch am Beispiel neuesVerstecktesWort="**" und geratenerBuchstabe='a'.
Aufgabe 6
Verzweigungen können einen else-Zweig haben. Dieser wird ausgeführt, wenn die Bedingung nicht wahr ist. Was passiert hier im else-Zweig (Zeile 84)? Beschreibe es mit eigenen Worten.
Vertiefung
Aufgabe 7
Am Ende könnte eine Siegesmeldung kommen. Es werden beim Bauen von neuesVerstecktesWort die Sternchen gezählt. Welchen Wert hat die Variable, wenn man gewonnen hat?
Aufgabe 8
Die Siegesmeldung ist schon vorbereitet. Was musst du in Zeile 97 an Stelle der Punkte schreiben?
Aufgabe 9
Probiere dies aus und nimm die Kommentare (/* und */) weg.
Aufgabe 10
Leider ist 'a' etwas anderes als 'A'. Mann kann recht leicht Texte in Groß- oder Kleinbuchstaben umwandeln lassen. Ordne zu: Was machen wohl toUpperCase und toLowerCase?
Aufgabe 11
Wir wollen intern mit Großbuchstaben arbeiten. Um den eingegeben Buchstaben zu einem Großbuchstaben zu machen, schreibt man (z.B. in Zeile 77) geratenerBuchstabe = geratenerBuchstabe.toUpperCase(); Mach das mal.
Aufgabe 12
Teste nun, indem du ein Wort nur mit GROSSBUCHSTABEN zum Raten eingibst und deine Testbuchstaben immer klein schreibst. Gib hier an, ob es geklappt hat oder wo dein erster Fehler war.
Aufgabe 13
Nun soll aber auch das zu ratende Wort intern in Großbuchstaben umgewandelt werden, weil man das ja auch beliebig eingibt. Welche Zeile muss man nach dem Einlesen des Wortes in Zeile 51 einfügen?
Aufgabe 14
Teste nun, ob man Groß- und Kleinbuchstaben mischen kann und es trotzdem funktioniert.
Für Experten
Nun könnte man die Zahl der Versuche zählen.
- Füge ein <div> o.ä. für die Anzeige hinzu. Vergiss die ID nicht.
- Erstelle eine Variable mit den Versuchen. In welcher Zeile muss diese angelegt werden? Welchen Anfangswert bekommt wie?
- Wo wird die Variable hochgezählt? Gib die Zeilennummer an, wo etwas eingefügt werden muss.
- Wann kann die Variable angezeigt werden? Gib auch hier eine Zeilennnummer an oder beschreibe die Stelle mit Worten.
- Wo muss die Variable für ein neues Spiel zurückgesetzt werden? (Hinweis: Es kann sein, dass du eine Lösung beim Anlegen der Variable genommen hast, wo ein Rücksetzen nicht notwendig ist.)
Aufgabe ohne KI
Schreibe eine Schleife, die testet, durch welche
Zahlen eine Zahl teilbar ist. In einer Variablen
"zahl" steht nun ein Wert, z.B. 123. Teste
mit einer Schleife alle alle Zahlen von 2 bis zahl/2
(also die Hälfte der "zahl"), ob Teilbarkeit
vorliegt. Eine Zahl ist teilbar, wenn das Ergebnis
keine Nachkommastelle hat. Man kann das testen mit
if (ergebnis == Math.floor(ergebnis)) { ... }.
Ausgaben kannst du gern mit console.log machen.
Aufgabe 15
Schreibe den Quelltext und gib ihn hier an.
Aufgabe 16
Lasse ihn von einer KI oder Nachbarn prüfen und gib - sofern vorhanden - die ersten Fehler an.
Aufgabe 17
Wie kann man dein Programm erweitern, wenn es zählen soll, wie oft ein Teiler gefunden wurde?
Aufgabe 18
Nehmen wir an, es wurden keine Teiler gefunden. Wie nennt man diese Zahl?
Zusammenfassung
Was muss man wissen/können?
Du musst wissen,
- was Verzweigungen sind und wo man sie benötigt,
- wo die Bedingung steht und
- was alles zum Körper der Verzweigung gehört.
Du kannst also Verzweigungen, auch mit else-Zweig
selbst schreiben.
Weiterhin hast du gelernt,
- was textVariable = "" bedeutet,
- wie man Texte erstellt und
- wie man einzelne Buchstaben eines Textes bekommt.
Was können anschließende Themen sein?
Jetzt ist genug Wissen da, um mal eine etwas
komplexere Sache (ja, ein kleines Spiel)
anzugehen.