From 267ecaebc1f725a8df5f43099f2cc27f50911f44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20Engl=C3=B6f=20Ytterstr=C3=B6m?= Date: Tue, 9 Dec 2025 14:48:57 +0100 Subject: [PATCH] better visualzier --- 2025-python/output/__init__.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/2025-python/output/__init__.py b/2025-python/output/__init__.py index f78ce66..c1861ff 100644 --- a/2025-python/output/__init__.py +++ b/2025-python/output/__init__.py @@ -1,4 +1,5 @@ import re +from math import inf # Directions/Adjacents for 2D matrices, in the order UP, RIGHT, DOWN, LEFT D = [ @@ -78,12 +79,26 @@ def mdbg(m): print("".join(r)) -def vdbg(seen, h, w, C="#", M=None): +def vdbg(seen, mask=("#", "."), M=None): """Print-debug visited positions of a matrix""" + t = inf + l = inf + b = 0 + r = 0 + for y, x in seen: + t = min(t, y) + r = max(r, x) + b = max(b, y) + l = min(l, x) + H = b - t + 1 + W = r - l + 1 + osr = t + osc = l + C, Z = mask def _m(r, c): - return M[r][c] if M else "." - for r in range(h): - print("".join([C if (r, c) in seen else _m(r, c) for c in range(w)])) + return M[r][c] if M else Z + for r in range(H): + print("".join([C if (r + osr, c + osc) in seen else _m(r, c) for c in range(W)])) def vvdbg(seen, h, w):