From: Ben Harris Date: Sat, 1 Jun 2024 16:58:23 +0000 (+0100) Subject: 22b structural tweaks X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~bjharris/git?a=commitdiff_plain;h=06d792147fb940dd1c66d0cf25140e92cbafd46e;p=aoc-2022.git 22b structural tweaks Still solves part 1 --- diff --git a/22/22b.bqn b/22/22b.bqn index 99bbf69..e63865d 100644 --- a/22/22b.bqn +++ b/22/22b.bqn @@ -8,16 +8,19 @@ Mark←{map𝕊⟨pos,dir⟩: ({𝕊⟨0,1⟩:'>';𝕊⟨1,0⟩:'v';𝕊⟨0,¯1⟩:'<';𝕊⟨¯1,0⟩:'^'}dir)⌾(pos⊸⊑) map } +TL←{⟨¯1,1⟩×⌽𝕩} +TR←{⟨1,¯1⟩×⌽𝕩} + Main←{𝕊⟨map,path⟩: Move←{ - 'L' 𝕊 ⟨pos,dir⟩: ⟨pos,⟨¯1,1⟩×⌽dir⟩; - 'R' 𝕊 ⟨pos,dir⟩: ⟨pos,⟨1,¯1⟩×⌽dir⟩; - n 𝕊 ⟨pos,dir⟩: ⟨dir Advance⍟n pos,dir⟩ + 'L' 𝕊 ⟨pos,dir⟩: ⟨pos,TL dir⟩; + 'R' 𝕊 ⟨pos,dir⟩: ⟨pos,TR dir⟩; + n 𝕊 ⟨pos,dir⟩: Advance⍟n⟨pos,dir⟩ } - Advance←{dir 𝕊 pos: + Advance←{𝕊⟨pos,dir⟩: dest←(≢map)|pos+dir dest↩{ (≢map)|𝕩+dir } •_while_ { ' '=𝕩⊑map } dest - ('.'=dest⊑map)⊑⟨pos,dest⟩ + ⟨('.'=dest⊑map)⊑⟨pos,dest⟩,dir⟩ } pos←⟨1,⊑(1⊏map)⊐'.'⟩ dir←⟨0,1⟩