From: Ben Harris Date: Tue, 14 May 2024 14:58:00 +0000 (+0100) Subject: 14a done X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~bjharris/git?a=commitdiff_plain;h=3978fd8b3c722d1cd6bf1ad477c5fe1507c3c616;p=aoc-2022.git 14a done --- 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