def g11_tenprint(rng):
"""TEN PRINT — the 1982 one-liner, rebuilt from half-blocks and biased by a
smooth field so the maze acquires a direction of travel."""
N = 32
c = Canvas(N, "GLYPH", "glyph", "tenprint", tiles=False)
NX, NY = c.cols, c.rows
nz = Value2D(rng, res=rng.choice([3, 4, 5]))
pairs = rng.choice([("▌", "▐"), ("▀", "▄"), ("▌", "▀"), ("▐", "▄")])
heavy = rng.uniform(0.04, 0.16)
light = rng.uniform(0.04, 0.16)
tilt = rng.uniform(0.15, 0.55)
for i in range(NX):
for j in range(NY):
u, v = (i + 0.5) / NX, (j + 0.5) / NY
p = clamp(nz(u, v) * (1 - tilt) + u * tilt)
r = rng.random()
if r < heavy:
ch = "█"
elif r > 1 - light:
ch = "▪"
else:
ch = pairs[0] if rng.random() < p else pairs[1]
c.glyph(i, j, ch)
return c