Dieses Repository enthält meine Implementierung des Aufkommens von Code -Rätseln unter Verwendung von Common Lisp. Es ist nicht so stolz, dass ich sie teilen möchte, es ist eher so, als hätte ich Spaß und ich könnte neue Tricks lernen, indem ich diesen Code enthüllt.
Die Absicht meines Spiels dieses Spiels ist es, Spaß zu haben und die Rätsel schnell zu machen, wohlgemerkt. Ich werde jedoch keine ernsthaften über die Programmierung von Best Practices hier ausdehnen, sodass es hauptsächlich meine eigenen Reflexe und Gewohnheiten zeigt. Sonst macht es keinen Spaß mehr, oder?
Ich habe einige Werkzeuge vorbereitet, um eine Zusammenfassung meines Rätsel -Timings und -ergebnisse hier auszugeben, für interessierte Leser, die einen kurzen Überblick haben. Meine Absicht ist es, diese Daten jeden Tag wieder auszuführen.
Ich verwende Clozure Common Lisp Version 1.12-Dev Darwinx8664 für diese Hacks. Es ist bekannt, dass SBCL den Ergebnissen oder in anderen Situationen möglicherweise noch schneller wären. Sollte es mich interessieren? Nun, das tue ich sicher nicht.
PARSER> (advent/2018:summary)
Day 1: Chronal Calibration
Puzzle 1: sum of frequency changes
3.958ms 520
Puzzle 2: first frequency read twice
699.040ms 394
Day 2: Inventory Management System
Puzzle 1: checksum of box ids
4.857ms 5000
Puzzle 2: common letters in box ids one letter apart
9.060ms ymdrchgpvwfloluktajxijsqmb
Day 3: No Matter How You Slice It
Puzzle 1: find squares claimed more than once
819.373ms 101565
Puzzle 2: find the only claim asked of only once
739.283ms 656
Day 4: Repose Record
Puzzle 1: Most Sleepy Guard, Strategy 1
5.472ms 35623
Puzzle 2: Minute Most Slept by a single guard, Strategy 2
7.761ms 23037
Day 5: Alchemical Reduction
Puzzle 1: Polymer reactions
2.609ms 10250
Puzzle 2: Time to improve the polymer.
100.259ms 6188
Day 6: Chronal Coordinates
Puzzle 1: dangerous, keep away, largest finite area
2132.732ms 4342
Puzzle 2: safe, keep close, within manhattan sum threshold
445.090ms 42966
Day 7: The Sum of Its Parts
Puzzle 1: order instruction steps (dependency graph)
0.330ms ABLCFNSXZPRHVEGUYKDIMQTWJO
Puzzle 2: time to complete steps in parallel with 5 workers
1.728ms 1157
Day 8: Memory Maneuver
Puzzle 1: read software license file
4.990ms 40701
Puzzle 2: value of the root node
2.295ms 21399
Day 9: Marble Mania
Puzzle 1: What is the winning Elf's score?
31.307ms 385820
Puzzle 2: What is the score with 100 times as many marbles?
5293.371ms 3156297594
Day 10: The Stars Align
Puzzle 1: KFLBHXGK
Puzzle 2: 10659s
Day 11: Chronal Charge
Puzzle 1: Find the 3x3 square with the largest total power
22.850ms 243,34
Puzzle 2: Find the square with the largest total power
413351.220ms 90,214,15
Day 12: Subterranean Sustainability
Puzzle 1: sum of indexes of pots with plants after 20 generations
2.283ms 2736
Puzzle 2: sum of indexes of pots with plants after 50000000000 generations
18.050ms 3150000000905
Day 14: Chocolate Charts
Puzzle 1: scores of the ten recipes immediately after 323081
139.835ms 7162937112
Puzzle 2: how many recipes to the left of 323081
12671.771ms 20195890
Day 15: Beverage Bandits
TO BE DONE LATER, lacking motivation for this one at the moment
Day 16: Chronal Classification
Puzzle 1: Count samples matching exactly 3 opcodes
20.406ms 529
Puzzle 2: Run given program with found opcodes
13.033ms 573
Nur für die Tritte davon, und weil ich heutzutage mit McClim, einem GUI -Toolkit für Common Lisp, herumgespielt habe, ist hier eine Visualisierung, die ich schnell in 64 Zeilen von gemeinsamem Lisp -Code für das Puzzle der Stoffe durchgeführt habe:
Dieses Mal hatte ich einen Fehler, bei dem ich das korrekte Testergebnis fand, aber das richtige Ergebnis bei der Eingabe nicht fand. Das rätselte mich ziemlich. Ich entschied, dass ich die 2-D-Bereiche zeichnen würde, um einen Hinweis zu erhalten. Oh, das ist jetzt offensichtlich, die Berechnung des Begrenzungsbox ist falsch. Beheben Sie dies, berechnen Sie erneut, ein gutes Ergebnis!
Danke McClim, dass ich mein Leben wieder einfach gemacht habe ;-)
Dieses Puzzle ist ziemlich visuell, da Sie Sternbewegungen simulieren müssen, bis Sie einige Buchstaben lesen können, die von den Sternen gebildet werden, als wären sie Pixel auf Ihrem Monitor. Visuell du sagten? McClim wieder zur Rettung!
Diesmal wird die Visualisierung dieses Mal, anstatt nur eine bloße Bestätigung oder Debugging -Fähigkeit für das Puzzle zu bieten, zur Lösung des Puzzles verwendet. Ich habe interaktiv die Zeit überstanden und berichtete, wie viele Zeiten, die ich auf meine Schnellvorlaufschaltflächen geklickt habe, bis ich den perfekten Rahmen hatte, um sie zu sehen!