From: Ben Harris Date: Sat, 1 Jun 2024 14:16:29 +0000 (+0100) Subject: 22a works on example X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~bjharris/git?a=commitdiff_plain;h=b497c1f79fbe58f1f3f71e462ce5ab2bda21b3ac;p=aoc-2022.git 22a works on example --- diff --git a/22/22a.bqn b/22/22a.bqn index 32abbe8..d21b3ee 100644 --- a/22/22a.bqn +++ b/22/22a.bqn @@ -6,10 +6,22 @@ Prep←{ ⟨ PrepMap ¯2↓𝕩, PrepPath ¯1⊑𝕩 ⟩ } Mark←{map𝕊⟨pos,dir⟩: ({𝕊⟨0,1⟩:'>';𝕊⟨1,0⟩:'v';𝕊⟨0,¯1⟩:'<';𝕊⟨¯1,0⟩:'^'}dir)⌾(pos⊸⊑) map } + 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⟩ + } + Advance←{dir 𝕊 pos: + dest←(≢map)|pos+dir + dest↩{ (≢map)|𝕩+dir } •_while_ { ' '=𝕩⊑map } dest + ('.'=dest⊑map)⊑⟨pos,dest⟩ + } pos←⟨0,⊑(⊏map)⊐'.'⟩ dir←⟨0,1⟩ - map Mark⟨pos,dir⟩ + ⟨⟨r,c⟩,d⟩ ← ⟨pos,dir⟩ Move´ ⌽path + (1000×1+r) + (4×1+c) + (|1-˜+´⟨2,1⟩×d) } •Show Main Prep •file.Lines ⊑•args