Advent of Code 2019 — Tag 8

Categories Allgemein

Hallo und herzlich Willkommen zum achten neunten Tag vom Advent of Code. Heute kommt der Blogpost mal wieder etwas früher als am Wochenende und zum Glück geht es nicht um diesen Intcode-Interpreter, der sich dieses Jahr durchzuziehen scheint. Am achten Tag war die Aufgabe, eine Prüfsumme eines Bildes zu berechnen und dieses Bild dann darzustellen.

Der achte Tag fiel mir wieder etwas leichter als die letzten Tage — das lässt sich eventuell auch am Ergebnis ablesen: 2 goldene Sterne für zwei gelöste Aufgaben. Die Lösung findet sich wieder mit einem entsprechenden Pull Request auf Github. Wie immer freue ich mich über Verbesserungsvorschläge, Kritik und auch Hinweise, was ihr gut findet.

Erste Teilaufgabe

Ein paar Worte möchte ich noch zur ersten Teilaufaufgabe verlieren. Es ging im Prinzip darum, Ziffern zu zählen. Erst habe ich das natürlich mit Schleifen probiert, bis ich irgendwann meine Nase in die Ruby-Dokumentation vom Array steckte und die Methode flatten fand. Schön finde ich ausserdem, dass ich der count-Methode einen Parameter übergeben kann. Das vereinfachte den Code ein gutes Stück . Ruby ist schon cool!

Tests gehören mittlerweile irgendwie einfach dazu, das überrascht mich doch ein bisschen, weil ich doch am Anfang explizit erwähnt hatte, dass ich sie bewusst nicht beachte. Aber sie erleichtern mir das Leben durchaus erheblich und deshalb sind sie jetzt quasi schon ein fest eingeplanter Bestandteil. Ist das bei dir auch so? Oder ist dein Code so gut, dass er keine Tests braucht?

Zweite Teilaufgabe

Im Gegensatz zur schönen, eleganten Lösung für die erste Teilaufgabe, ist die zweite doch wieder eher quick und dirty programmiert — aber sie löst das Problem ¯\_(ツ)_/¯. Mir kam einfach keine richtige, elegante Idee, deswegen ist das wieder mit dem Holzhammer gelöst. Nachdem ich die erste gelöst habe, las ich die zweite, startete einen ersten Versuch, scheiterte, schlief eine Stunde, beschäftigte mich mit anderen Dingen. Und während ich mich bewusst nicht um die Aufgabe kümmerte und meine Gedanken schweifen ließ, fiel mir mein Denkfehler auf. Zu guter Letzt habe ich die Ausgabe des decodierten Bildes noch ein bisschen aufpoliert, schaute einmal scharf hin und hatte dann die Lösung. Die Idee, die Ausgabe zu ändern, kam mir aber erst, als ich in den ganzen Einsen und Nullen nichts sah.

Wie immer: Vielen Dank fürs Lesen, vielen Dank für Feedback und bis zum nächsten Mal!