Meine Kollegen haben mir gesagt, dass "Advent of Code ein Marathon ist". Das spüre ich inzwischen auch.
Ich werde in diesem Blogbeitrag ein wenig von meinen Erfahrungen berichten.
Dies ist mein erstes Jahr, in dem ich am Advent of Code (AoC) teilnehme, und ich muss sagen, es macht mir sehr viel Spaß. Mein persönliches Ziel ist es, mit Go, einer für mich relativ neuen Sprache, "Weihnachten zu retten".
Die Berechnung chemischer Reaktionen, das Durchlaufen von Graphen, das Lösen eines Labyrinths mit der Breadth-First-Suche... Ich habe bereits eine Menge (wieder) gelernt und ich denke, dass die Teilnahme an der Einführung von Code in einer neuen Sprache vielleicht das beste Programmier-Bootcamp ist, das es gibt. Der Schöpfer, Eric Wastl, scheint allen Rätseln viel Aufmerksamkeit gewidmet zu haben, und oft gibt es eine Hintergrundgeschichte zur Geschichte der Computerwissenschaft.
Die Komplexität der Rätsel kann Sie sehr schnell in den Wahnsinn treiben. Eines der Dinge, die mir wirklich geholfen haben, ist das Testen. Das Schreiben geeigneter Tests hilft bei der Fehlersuche ungemein, vor allem, wenn Sie denselben Code mehrmals ändern müssen. Ein weiterer Punkt, der sich wie ein roter Faden durch die Arbeit zieht, ist die Visualisierung. So können Sie leicht herausfinden, ob die 90 Grad, die Sie eingestellt haben, tatsächlich 'unten' statt 'oben' sind :).
Überqueren des Gerüsts
Heute haben wir das Intcode-Programm wieder hervorgeholt. Das Intcode-Programm nimmt eine Reihe von Ganzzahlen als Anweisungen entgegen und führt auf der Grundlage dieser Anweisungen verschiedene Funktionen aus.
Um fair zu sein, hat sie nicht wirklich viel Staub angesetzt. Diese selbstgebaute virtuelle Maschine wurde beim Bemalen unseres Raumschiffs, bei einer Partie Breakout und bei der Suche nach einem Sauerstoffgerät in einem Labyrinth eingesetzt... Jetzt müssen wir mit einem Saugroboter durch ein Gerüst navigieren.
I feel participating in the advent of code using a new language is maybe the best programming boot camp there is.

Der erste Teil des Rätsels besteht darin, herauszufinden, wo sich die Schnittpunkte befinden. Mein Algorithmus findet einfach heraus, ob die untersuchte Kachel von einem '#' umgeben ist.
Der zweite Teil ist schwieriger: Jetzt müssen wir tatsächlich alle Kacheln auf dem Pfad abfahren und sehen, wie viel Staub der Staubsauger aufnimmt. Da ich heute etwas wenig Zeit habe, habe ich Stift und Papier herausgeholt und die Schritte aufgeschrieben, die der Roboter machen sollte. Dazu musste ich mir drei Grundmuster ausdenken, da der Roboter nur eine begrenzte Anzahl von Bewegungsbefehlen ausführen kann. Als nächstes holte ich die ASCII-Tabelle hervor, um die Befehle im richtigen Format an den Roboter zu senden. Fügen Sie noch ein wenig Logik hinzu, und schon ist Teil zwei fertig!
Noch einer weniger...
Es ist nicht die Lösung, auf die ich am stolzesten bin. Idealerweise hätte ich in eine Lösung investiert, die auch für andere Gerüste geeignet ist, aber nun ja... Wenn Sie einen mehrtägigen Marathon laufen, müssen Sie sich manchmal für die weniger schöne Variante entscheiden.
Wenn Sie jedoch alle Rätsel später lösen, glauben Sie mir, wenn ich sage, dass es sich lohnt, etwas mehr Zeit in das Intcode-Programm zu investieren.
Advent des Codes 2019 Serie
- Advent of Code 2019 hat begonnen - Machen Sie mit!
- Advent of Code 2019 - Tag 2
- Advent des Codes: Wie Excel mir den Tag rettete und auch meinem Sohn den Tag rettete
- Advent des Codes - Tag 4: Visualisieren
- Advent des Codes - Tag 5: Saintaerkla2s
- Advent of Code - Tag 6: Wie ich an AoC hängen geblieben bin
- Advent of Code - Tag 7: Teilen Sie Ihren Arbeitsablauf
- Advent of Code - Tag 8: Wie einfache Dinge für manche Menschen sehr schwer sein können
- Advent of Code - Tag 9: Wie ich anfing, Spaß am Lösen von Programmierrätseln zu haben
- Advent of Code - Tag 10: Weltraum-Cowboys schießen Pixel in den Himmel
- Advent des Codes - Tag 11: Sein oder nicht sein
- Advent of Code - Tag 12: Nach dem Mond schießen
- Advent des Codes - Tag 14: Kettenreaktion
- Advent des Codes - Tag 16: Flüche
- Advent of Code - Tag 17: Vakuumieren eines Gerüsts mit dem Intcode-Programm
- Wie kleine grüne Männchen mir geholfen haben, ein Rätsel zu lösen
- Advent of Code - Tag 20: Ein bisschen Überarbeitung
- Advent of Code - Tag 21: Es ist ein Marathon, kein Sprint
- Advent of Code - Tag 22: Mischen von Karten bis in alle Ewigkeit
- Advent of Code - Tag 23: Das Netzwerk ist zuverlässig
- Advent of Code - Tag 24 & 25: Unkonventionelles Denken
Verfasst von

Ben de Haan
Contact



