dd39c90f13math.magnitude(): return order of magnitude of a numberStefan Harmuth2024-12-07 06:35:55 +0100
24cd561370aoc.AOCDay(): add internal cache set for standard "have I seen this value?" situations. Adds SEEN (the set), seen_reset() and seen()Stefan Harmuth2024-12-06 07:32:55 +0100
bfac2b9433redefined int_seq.factorial(); takes 4 times longer than math.factorial(), but is pure python and allows for sequences not starting with 1Stefan Harmuth2024-11-03 14:17:59 +0100
d6fad1511cGrid.find(): generator yielding coordinates that hold a specific valueStefan Harmuth2024-01-09 06:52:04 +0100
cf72a5451faoc.AOCDay: introduce class variable "DP", a dictionary that gets reset before every part method call, useful for memoization problemsStefan Harmuth2024-01-03 05:46:24 +0100
87fbaeafbecoordinate.Shape: add __contains__() coordinate.Line: add __contains__(), __len__() and proper __eq__() NEW: coordinate.Polygon: deal with Polygons defined by a list of Coordinates (in (counter)?clockwise order. Currently allows for rectilinear decomposition and area calculationStefan Harmuth2024-01-01 21:48:17 +0100
94cffbbd74visualization: Add Color Enum visualization: add draw methods for points and rectanglesStefan Harmuth2024-01-01 21:41:08 +0100
e3309415b7tools.minmax(): remove broken code; why was that even there?Stefan Harmuth2024-01-01 21:40:00 +0100
0aedd1c612NEW: visualization.Window(): simple Tk visualization class, can just draw some lines for now, but with working realignment, zooming and panningStefan Harmuth2023-12-28 06:09:16 +0100
600d0e716ccombinations_of_sum moved to new itertools moduleStefan Harmuth2023-12-25 23:17:18 +0100
5d5e9fb8e5NEW: AOCDay.run_part(): when timing, shift all following progress bars down by one to not interfereStefan Harmuth2023-12-25 19:45:31 +0100
916ab481cfNEW: AOCDay.progress() - add a progress bar to your long-running solutionsStefan Harmuth2023-12-25 15:47:36 +0100
4ce70c8565AOCDay.run_part(): When in timeit mode, display progress barStefan Harmuth2023-12-25 12:31:06 +0100
ee3b5ee941Stopwatch() can now be restarted and will automatically sum up all intervals between start() and stop() callsStefan Harmuth2023-12-25 12:29:49 +0100
4d1b075086NEW: itertools.len_permutations() and itertools.len_combinations() -> get the amount of results the respective itertools function would yieldStefan Harmuth2023-12-25 11:24:12 +0100
1e43a2ff0dNEW: coordinate.Line() - only 2D for now, but can calc intersectionsStefan Harmuth2023-12-24 12:14:47 +0100
cc1fd86edeNEW: Coordinate() now accepts floats; what can possibly go wrong?Stefan Harmuth2023-12-24 12:13:58 +0100
9386c40ea5FIX: Coordinate.__new__(): return correct class instead of always Coordinate() (fucked up subclassing)Stefan Harmuth2023-12-23 09:44:36 +0100
ffcc1e14c0NEW tools.list_combinations_of_sum() - returns all possible tuples with len [length}, containing integers summing up to {total_sum}Stefan Harmuth2023-12-18 09:12:34 +0100
02623f8c9aNEW Grid.getRegion() -> Generator over all Coordinates of connected cells with the same value inside Grid bordersStefan Harmuth2023-12-18 07:00:05 +0100
b2cc1e814cFIX Coordinate().getNeighbours() min/maxY FIX Coordinate() not hashable after implementing __eq__
0.3.6
Stefan Harmuth2023-12-17 08:24:19 +0100
42cbf6f85cCoordinate().__eq__: enable comparison with tuplesStefan Harmuth2023-12-17 07:21:00 +0100
2bec56eb1cAOCDay.is_test() returns a bool, True if the solution for the current part/input_file is known; else FalseStefan Harmuth2023-12-16 12:04:11 +0100
1fb4582908AOCDay._submit(): maybe display rank on correct answer?Stefan Harmuth2023-12-15 07:30:06 +0100
2de9725adbGrid(): make use of the fact that Coordinate is a tupple for some speedups
0.3.5
Stefan Harmuth2023-12-14 16:18:25 +0100
32c07d2913Coordinate() now behaves more tupley-like (methods not accept tuples as parameters, including __add__ and __sub__)Stefan Harmuth2023-12-14 15:08:49 +0100
12f3e58d85make human readable time actually human readableStefan Harmuth2023-12-01 17:29:24 +0100
89edb0a6d7getInput variant, that only returns integers from input linesStefan Harmuth2023-12-01 07:37:25 +0100
c2f6191d69don't need to implement comparison dunders for Coordinate anymore as it now behaves like a tuple which already includes useful comparators
0.3.3
Stefan Harmuth2023-11-27 06:17:59 +0100
5bae00234cGrid.recalcBoundaries() (for when grids get smaller, which is not tracked by default) Grid.from_str() and Grid.print() now accept translate dicts for more complex grid valuesStefan Harmuth2022-12-23 08:00:21 +0100
00de38a277Coordinate.getNeighbours() and Grid.getNeighboursOf() can be generators; no need to create extra lists every timeStefan Harmuth2022-12-12 08:11:29 +0100
5df82d2359reversable coordinates; grid.print() can now mark important spotsStefan Harmuth2022-12-10 14:50:22 +0100