Programmieren leicht gemacht - adäquate Modelle für den Einsatz im Unterricht/ Ein Autorennen

Aus Wikibooks

Ein Autorennen[Bearbeiten]

Anlegen von Variablen[Bearbeiten]

In diesem Projekt werden erstmals Variablen erstellt und benutzt. Weiters wird das Konzept einer Zufallszahl eingeführt. Zu Beginn zeichnen wir ein Auto, welches wir mit dem Namen „Auto“ versehen. Um eine Variable für dieses Objekt zu erstellen, klicken wir die „v“-Schaltfläche an, die sich im Betrachter neben dem Names des Objekts befindet. Unsere Variable benennen wir „geschwindigkeit“ und klicken danach auf die Schaltfläche „ok“, um diese zu erstellen und sie zum Betrachter des Objekts hinzuzufügen:





Ziehen Sie nun den grünen Zuweisungspfeil der Kachel „Autos geschwindigkeit“ in Ihren Arbeitsbereich. Damit erstellen Sie ein Skript für die variable „geschwindigkeit“-Kachel des Autos:




Klicken Sie nun den Namen des Objekts an. Nun erscheint folgendes Menü:




Wählen Sie daraus den Eintrag „Gib mir eine Kachel mit einer Zufallszahl“ aus. Ersetzen Sie nun den Wert von „geschwindigkeit“ im Skript durch die Zufallszahl-Kachel. Darin soll nun noch die Zufallszahl durch eine Zahl kleiner als 20 ersetzt werden:




Damit unser Auto vorwärts fährt, soll nun die Kachel „Auto gehe vorwärts“ in das Skript eingefügt werden:




Der Zahlenwert dieser Kachel soll nun durch die Geschwindigkeits-Kachel ersetzt werden:




Nun können wir unser Skript durch Klicken auf die Uhr ausführen und beobachten, was passiert. Das Auto bewegt sich mit jedem Ticken der Uhr um eine zufällige Anzahl (zwischen 1 und 20) an Pixeln vorwärts. Wir öffnen nun den Detail-Betrachter, um diese Änderung der Zahlenwerte zu beobachten. In der Variablen-Kategorie befindet sich neben der Variable „geschwindigkeit“ in Icon, welches wie ein kleines Menü aussieht. Klicken Sie dieses nun an und wählen Sie den Eintrag „Ausführlicher Beobachter“ aus dem sich öffnenden Menü aus:




Platzieren Sie diesen Betrachter an einer beliebigen Stelle auf Ihrem Arbeitsbereich:




Führen Sie das Skript nun mit Hilfe des gelben Rufzeichens aus und beobachten Sie dabei die sich ändernden Zahlenwerte im Detail-Beobachter der Variable „geschwindigkeit“. Malen Sie nun ein zweites Auto, am besten in einer anderen Farbe und benennen Sie beide Autos entsprechend ihrer Farbe:




Malen Sie nun mit Hilfe der Malwerkzeuge zwei Linien, die genügend weit voneinander entfernt sind. Eine davon stellt die Startlinie, die andere die Ziellinie für das Autorennen dar:




Öffnen Sie nun den Betrachter des nachträglich hinzugefügten Autos und fügen Sie eine neue Variable „geschwindigkeit“ hinzu. Setzen Sie den Zahlenwert auf eine Zufallszahl. Wichtig dabei ist vor allem, dass der Höchstwert für diese Zufallszahl bei beiden Autos gleich lautet:




Legen Sie für dieses Auto ebenfalls in analoger Weise ein Skript an, wie Sie dies bereits für das erste Auto getan haben:




Legen Sie nun für die Variable „geschwindigkeit“ des roten Autos ebenfalls einen Detail-Betrachter an:




Klicken Sie nun die „normal“-Schaltfläche in den Skripts beider Autos an und wählen Sie den Eintrag „angehalten“ aus dem sich öffnenden Menü aus:




Ziehen Sie nun den Icon „Skriptkontrolle“ aus dem Lager-Menü:




Klicken Sie auf den „step“-Button und beobachten Sie die Zahlenwerte in den Detail-Betrachtern der beiden Autos:




Erweiterung des Projekts „Autorennen“[Bearbeiten]

Das erstellte Autorennen kann nun noch ein wenig modifiziert werden. Die folgende Aufgabe besteht nun darin, dass die Autos an der Ziellinie zum Halten gebracht werden sollen.

Dazu soll nun zuerst einmal die Startlinie aus dem Projekt entfernt werden.

Benennen von Skripten[Bearbeiten]

Gerade bei komplexer werdenden Projekten ist es von Vorteil, die Skripte zu benennen. Klicke dazu auf das Wort „Skript1“ im Kopf jedes Skripts, um es zu benennen:




Die Test-Kachel[Bearbeiten]

Füge nun dem Skript eine „test“-Kachel hinzu. Die Funktionsweise dieser Kachel kann mit einer gewöhnlichen if-Verzweigung verglichen werden:




Die „Farbe sieht“-Kachel[Bearbeiten]

Füge jedem der Skripte „Farbe sieht“-Kacheln hinzu, welche in der Kategorie „Tests“ im Betrachter enthalten sind:




Die Sensoren sollen bei beiden Autos jeweils die gelben Scheinwerfer darstellen. Klicke dazu das Feld vor „Farbe sieht“ an und klicke mit der sich öffnenden Pipette auf einen der beiden Scheinwerfer des Autos. Anschließend soll die Farbe ausgewählt werden, auf die der Sensor ansprechen soll. In unserem Fall ist dies die Farbe der Ziellinie, also schwarz:








Falls nun einer der beiden Scheinwerfer mit der Ziellinie in Berührung kommt, soll das Skript „autorennen“ beendet werden.

Die „stoppe Skript“-Kachel[Bearbeiten]

Füge dazu die Kachel „stoppe Skript“ aus dem Menü „Skriptverwaltung“ in den Ja-Zweig der Testanweisung ein:




Ziehe nun die beiden bereits im Skript vorhandenen Befehle auf die Nein-Position der Test-Anweisung:







Diese Änderungen werden für das blaue Auto in analoger Weise vorgenommen. Führe nun alle Skripte durch Betätigen des „go“-Buttons aus. Du wirst bemerken, dass die Autos stehen bleiben, sobald sie die Ziellinie erreicht haben. Damit sich die Auto jedoch gegenseitig anhalten, ist nur noch eine geringfügige Modifikation notwendig.


Füge nun bei beiden Autos die „stoppe Skript“-Kachel des jeweils anderen Autos im Ja-Zweig der Test-Anweisung ein:




Das fertige Projekt sieht nun folgendermaßen aus:




Speichern des Projekts[Bearbeiten]

Um es zu speichern, klicke auf den „Veröffentlichen“-Button des Navigator-Menüs. Dort kannst du eine detaillierte Beschreibung deines Projekts angeben:




Du wirst danach aufgefordert, ein Verzeichnis zu wählen, wo dein Projekt gespeichert werden soll. Klicke anschließend auf den „Speichern“-Button:




Herunterladen des fertigen Projekts als Datei[Bearbeiten]

Detaillierte Informationen zur Dekodierung des angeführten ASCII-Textes finden Sie unter Wichtige Information zum Herunterladen der Beispielsdateien.

Den zugehörigen ASCII-Text finden Sie hier.

Das fertige Projekt kann auf http://finanz.math.tu-graz.ac.at/~pachernegg/Squeak_Autorennen.html betrachtet werden!