Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Debuggen

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.

  1. Das Skript ist am falschen Ort
    Welche Figur ist gerade ausgewählt? Hast du das Skript bei der richtigen Figur hingeschrieben?
  2. 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.
  3. 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 10 statt Setze X auf 10
    • Ändere Punkte um 1 statt Setze Punkte auf 1
  4. 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.
  5. 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.
  6. Falsche Auswahl im Drop-Down-Menü
    Manchmal wird das Ändern der Dropdown-Menüs einfach vergessen und es ist eine falsche Variable auusgewählt.
  7. 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
  8. Zeitliche Begrenzung
    Sind die Aktionen zeitlich begrenzt, wo sie es nicht sein sollten oder umgekehrt? z.B.:
    • Sage Hallo! statt Sage Hallo für 3 Sekunden
  9. Falsch angeordnete Schleifen
    Sind die Blöcke innerhalb von Schleifen, wenn sie ausserhalb sein sollten oder umgekehrt? z.B.:
    Setze Richtung auf 90 Grad
       wiederhole fortlaufend
       gehe 10er Schritt
    
    statt
       wiederhole fortlaufend
       Setze Richtung auf 90 Grad
       gehe 10er Schritt
    
  10. Fehlende Schleifen bei Abfragen
    Manchmal fehlen aber auch Dauerschleifen, um beispielsweise eine Berührung dauerhaft zu überprüfen
    falls wird Figur berührt, dann
       verstecke dich
    
    statt
    wiederhole fortlaufend
       falLs wird Figur berührt, dann
          verstecke dich
    
  11. 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.
    Wenn grüne Flagge gedrückt
       wiederhole fortlaufend
          falls Pfeiltaste rechts gedrückt, dann
              gehe 10er Schritt
    
    statt
    Wenn Pfeiltaste rechts gedrückt
       gehe 10er Schritt
    
  12. 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 dem Sende und Empfangen-Blöcken zu arbeiten.
    für Figur 1
    Wenn grüne Flagge gedrückt
        wiederhole fortlaufend
           falLs wird Figur berührt, dann
              verstecke dich
              Sende Nachricht "Figur 1 wurde berührt" an alle
    
    für Figur 2
    Wenn ich Nachricht "Figur 1 wurde berührt" empfange
       zeige dich
       sage "Da bin ich"    
    
  13. 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.
  14. 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.
  15. 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
    
  16. Verschwundene Figuren wiederfinden
    Wenn plötzlich eine Figur verschwunden ist, hilft oft das folgende Skript
    Wenn Leertaste gedrückt
       gehe zu X:0 Y:0
       gehe zu vorderster Ebene
       zeige dich