Recht häufig kommt es vor, dass dein Algoritmus beim ersten Test nicht das macht, was du geplant hast. In den seltensten Fällen ist dann der Computer oder Scratch daran Schuld.
Scratch hat beispielsweise immer dann Probleme wenn vielen Schleifen gleichzeitig gestartet werden und dann aber eine Reihenfolge eingehalten werden muss - in diesen Fällen ist Scratch nicht optimal, aber selbst dieses Problem lässt sich durch eine besser Programmierung lösen.
Meistens hast du einen Denkfehler oder eine Unaufmerksamkeit begangen und musst daher nun den Fehler suchen. Man nennt das auch "Debugging".
Die nachfolgende Checkliste mit Hilfen kann dir beim Suchen helfen, wenn dein Programm nicht so läuft, wie du dir das vorgestellt hast.
- Das Skript ist am falschen Ort
Welche Figur ist gerade ausgewählt? Hast du das Skript bei der richtigen Figur hingeschrieben? - Vergessene Blöcke
Gehe für dich in Gedanken die einzelnen Blöcke durch. Machen sie Sinn oder fehlt etwas? Falls du einen Code abschreibst, zähle die Blöcke nach. - Verwechselte Blöcke
Hast du die richtigen Blöcke verwendet? Besonders häufig werden Blöcke mit relativen und absoluten Anweisungen verwechselt, z.B.:Ändere X um 10stattSetze X auf 10Ändere Punkte um 1stattSetze Punkte auf 1
- X und Y verwechselt? Unter Umständen hast du einen X-Block statt einen Y-Block erwischt? Die X-Achse verläuft waagerecht - die Y-Achse lotrecht.
- Falsches Vorzeichen
Bei Bewegungen gelten folgende einfach Regeln. Positive Zahlen bewegen die Figur nach rechts auf der X-Achse und nach oben auf der Y-Achse. Negative Zahlen bewegen die Figur nach links auf der X-Achse und nach unten auf der Y-Achse. - Falsche Auswahl im Drop-Down-Menü
Manchmal wird das Ändern der Dropdown-Menüs einfach vergessen und es ist eine falsche Variable auusgewählt. - Falsche Reihenfolge
Sind die Blöcke in der korrekten Reihenfolge? Es mach teinen Unterschiede ob die Reihenfolge A oder B ist:- A:
Drehe dich um 90 Grad+Gehe 10er Schritt - B:
Gehe 10er Schritt+Drehe dich um 90 Grad
- A:
- Zeitliche Begrenzung
Sind die Aktionen zeitlich begrenzt, wo sie es nicht sein sollten oder umgekehrt? z.B.:Sage Hallo!stattSage Hallo für 3 Sekunden
- Falsch angeordnete Schleifen
Sind die Blöcke innerhalb von Schleifen, wenn sie ausserhalb sein sollten oder umgekehrt? z.B.:stattSetze Richtung auf 90 Grad wiederhole fortlaufend gehe 10er Schrittwiederhole fortlaufend Setze Richtung auf 90 Grad gehe 10er Schritt - Fehlende Schleifen bei Abfragen
Manchmal fehlen aber auch Dauerschleifen, um beispielsweise eine Berührung dauerhaft zu überprüfenstattfalls wird Figur berührt, dann verstecke dichwiederhole fortlaufend falLs wird Figur berührt, dann verstecke dich - Ruckelige Tastatureingaben beheben
Beim Programmieren gibt es häufig verschiedene Lösungen für das gleiche Problem. In Scratch gibt es auch fertige Blöcke, die fortlaufend, aber langsam, auf Ereignisse prüfen. Diese Blöcke kann man auch mit einer Schleife und Bedingung selber programmieren. Für die flüssige Steuerung einer Spielfigur sind Schleifen im "Eigenbau" meist besser geeignet, da sie flüssiger wirken.stattWenn grüne Flagge gedrückt wiederhole fortlaufend falls Pfeiltaste rechts gedrückt, dann gehe 10er SchrittWenn Pfeiltaste rechts gedrückt gehe 10er Schritt - Koordination und Synchronisation
Wenn mehrere Skripte (v.a. Dauerschleifen) gleichzeitig laufen, kann es zu Konflikten kommen, da nicht klar ist, welches Skript zuerst abgearbeitet werden soll (s. Einleitung). Es kann helfen eine kleine Pausen einzufügen, z.B. bevor eine Figur versteckt wird. Besser noch ist es mit demSendeundEmpfangen-Blöcken zu arbeiten.
für Figur 1für Figur 2Wenn grüne Flagge gedrückt wiederhole fortlaufend falLs wird Figur berührt, dann verstecke dich Sende Nachricht "Figur 1 wurde berührt" an alleWenn ich Nachricht "Figur 1 wurde berührt" empfange zeige dich sage "Da bin ich" - Arbeiten mit lokalen oder globalen Variablen
Kannst du bei einer Figur eine Variable nicht einsetzen, hast du sie vermutlich als lokale Variable definiert („nur für diese Figur“). Ein Punktezähler sollte zum Beispiel „für alle Figuren“ angelegt werden. - Werte und Zustände anzeigen lassen
Um besser verstehen zu können, was das Programm gerade macht, ist es oft hilfreich, die Variablenwerte auf der Bühne anzeigen zu lassen. - Initialisieren eines Algoritmus
Beim Starten deines Programms über das grüne Fänchen müssen eventuell Einstellungen zurückgesetzt werden. Den Punktestand wieder auf 0 setzen, Figuren wieder anzeigen oder verstecken, Malspur wegwischen usw. Bei Geschichten müssen zum Beispiel häufig alle Figuren beim Start versteckt werden.Wenn grüne Flagge gedrückt setze Punkte auf 0 gehe zu X:0 Y:0 setze Richtung auf 90 Grad zeige dich Sende Nachricht "Reset" an alle - Verschwundene Figuren wiederfinden
Wenn plötzlich eine Figur verschwunden ist, hilft oft das folgende SkriptWenn Leertaste gedrückt gehe zu X:0 Y:0 gehe zu vorderster Ebene zeige dich