From 3978fd8b3c722d1cd6bf1ad477c5fe1507c3c616 Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Tue, 14 May 2024 15:58:00 +0100 Subject: [PATCH] 14a done --- 14/14a.bqn | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/14/14a.bqn b/14/14a.bqn index 407a672..6248c22 100644 --- a/14/14a.bqn +++ b/14/14a.bqn @@ -29,7 +29,26 @@ Plot←{ {𝕊⟨from,to⟩: map ↩ 1¨⌾((from RectIndices to)⊸⊑) map }˘∾2↕¨𝕩 - map⊏".#" + map } -•Show Plot Prep •file.Lines ⊑•args +Main←{𝕊map: + grains←0 + Settle←{ + map 1⌾(𝕩⊸⊑) ↩ + grains +↩ 1 + 1 + } + # Return 0 if the sand falls forever; 1 once a path is full. + OnMap←{ (∧´𝕩≥⟨0,0⟩)∧(∧´𝕩<≢map) } # 0 if fallen off the map. + Solid←{ 𝕩⊑map } # Hit something solid. + FilledDown ←{Pour ⟨0,1⟩+𝕩} + FilledLeft ←{Pour ⟨¯1,1⟩+𝕩} + FilledRight←{Pour ⟨1,1⟩+𝕩} + Pour← OnMap _and_and_ (Solid _or_or_ (FilledDown _and_and_ FilledLeft _and_and_ FilledRight _and_and_ Settle)) + Pour ⟨500,0⟩ + #•Show (400↓map)⊏".#" + grains +} + +•Show Main Plot Prep •file.Lines ⊑•args -- 2.30.2