From 959b52cda26246945fc8b141dcf11afa69bc63e2 Mon Sep 17 00:00:00 2001 From: Pascal Lais Date: Sun, 19 Dec 2021 21:55:32 +0100 Subject: [PATCH] Update day 19 solution --- day-19/day-19.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/day-19/day-19.py b/day-19/day-19.py index abab3f3..ec54dfa 100644 --- a/day-19/day-19.py +++ b/day-19/day-19.py @@ -86,12 +86,12 @@ def get_transform_func(v0, v1): def transform(scanners, idx, done=[]): done.append(idx) - for n in scanners[idx]['overlapping']: - if n in done: + for next in scanners[idx]['overlapping']: + if next in done: continue overlapping = [] for i, b0 in enumerate(scanners[idx]['metrics']): - for j, b1 in enumerate(scanners[n]['metrics']): + for j, b1 in enumerate(scanners[next]['metrics']): if 11 <= len(b0 & b1): overlapping.append((i, j)) if 2 <= len(overlapping): @@ -102,21 +102,21 @@ def transform(scanners, idx, done=[]): (x0, y0, z0) = scanners[idx]['beacons'][overlapping[0][0]] (x1, y1, z1) = scanners[idx]['beacons'][overlapping[1][0]] v0 = (x0 - x1, y0 - y1, z0 - z1) - (x0, y0, z0) = scanners[n]['beacons'][overlapping[0][1]] - (x1, y1, z1) = scanners[n]['beacons'][overlapping[1][1]] + (x0, y0, z0) = scanners[next]['beacons'][overlapping[0][1]] + (x1, y1, z1) = scanners[next]['beacons'][overlapping[1][1]] v1 = (x0 - x1, y0 - y1, z0 - z1) transform_func = get_transform_func(v0, v1) - for i, b in enumerate(scanners[n]['beacons']): + for i, b in enumerate(scanners[next]['beacons']): (x, y, z) = b - scanners[n]['beacons'][i] = eval(transform_func) + scanners[next]['beacons'][i] = eval(transform_func) (x0, y0, z0) = scanners[idx]['beacons'][overlapping[0][0]] - (x1, y1, z1) = scanners[n]['beacons'][overlapping[0][1]] + (x1, y1, z1) = scanners[next]['beacons'][overlapping[0][1]] (xo, yo, zo) = (x0 - x1, y0 - y1, z0 - z1) - scanners[n]['origin'] = (xo, yo, zo) - for i in range(len(scanners[n]['beacons'])): - (x, y, z) = scanners[n]['beacons'][i] - scanners[n]['beacons'][i] = (x + xo, y + yo, z + zo) - transform(scanners, n, done) + scanners[next]['origin'] = (xo, yo, zo) + for i in range(len(scanners[next]['beacons'])): + (x, y, z) = scanners[next]['beacons'][i] + scanners[next]['beacons'][i] = (x + xo, y + yo, z + zo) + transform(scanners, next, done) def solve(input):