Advent of Code 2020 — Tag 12

Categories Allgemein

Nachdem wir am elften Tag beobachtet haben, wer sich wo in der Wartehalle für die Fähre hinsetzt, ging es am zwölften Tag vom Advent of Code darum, eine Schiffsposition mithilfe von Navigationsanweisungen zu bestimmen. Auf zweierlei Art.

Die heutigen Aufgaben habe ich auf dem iPad gelöst. Dabei habe ich Working Copy und Pythonista genutzt — und ich bin selbst erstaunt, dass und wie gut es funktioniert hat. Ich ziehe meinen Hut vor den Macher*innen.

Aber zurück zu den Aufgaben des zwölften Tages. Die erste war relativ simpel: Folge einfach Anweisungen. Das Schiff bewegt sich dabei mal in die vier Himmelsrichtungen, mal dreht es sich und fährt gerade aus in exakt diese Richtung. Zum Glück war diese Richtung immer Nord, Süd, Ost oder West.

Das war jetzt alles keine Raketenwissenschaft, von einem kleinen Maleur mal abgesehen: Ich hatte statt „+=“ eben „+-“ geschrieben und ich wundere mich selbst, dass das ein gültiger Python-Ausdruck ist: Er subtrahiert. Nichts desto trotz brauchte ich ein paar Minuten, um diesen Fehler zu beheben und der erste goldene Stern am zwölften Tage war verdient.

Bei der zweiten Aufgabe musste ich gleich mal schmunzeln. Es stellte sich heraus, dass wir die Aufgabe missverstanden haben, weil wir vorher nicht gründlich genug geschaut haben:

you realize that the actual action meanings were printed on the back of the instructions the whole time.

Das passiert mir ungefähr einmal am Tag, wenn nicht gar in der Stunde. Aber alles kein Problem, sowwas passiert, dann müssen wir halt nochmal ran. Nervig, kein Weltuntergang. Ich brauchte tatsächlich ein bisschen länger, bis ich auf die Lösung gekommen bin. Statt des Schiffs rotieren und bewegen wir jetzt einen Wegpunkt, der relativ zum Schiff positioniert ist. Nur, wenn das Schiff sich nach vorne bewegt, bewegt es sich — es verschiebt sich nicht einfach. Ergibt ja eigentlich auch Sinn, wenn man mal so drüber nachdenkt.

Ich knobelte ein bisschen daran, wie ich die Rotation umsetzen musste — mit anderen Worten: Ich muss auf einmal Wegpunktkoordinaten verändern — und mithilfe vom Einheitskreis, Zettel und Stift war’s dann auch irgendwann gelöst — zack, zweiter Stern.

Gestreamt habe ich natürlich auch wieder, alle Videos gibt’s auf unserem Youtube-Channel. Das macht schon Spaß, merke ich immer wieder. Dadurch, dass ich die ganze Zeit laut darüber nachdenken muss, was ich tue und was ich tun will, ist das fast schon Rubber Ducking, nur halt mit dem Internet. Außerdem habe ich an einem weiteren Tag gemerkt, dass meine Unit Tests mir das Leben durchaus vereinfachen, allerdings kann es durchaus passieren, dass auch da mal ein Bug durchrutscht, wie eben „+-„.