chiark / gitweb /
22b structural tweaks
authorBen Harris <bjh21@bjh21.me.uk>
Sat, 1 Jun 2024 16:58:23 +0000 (17:58 +0100)
committerBen Harris <bjh21@bjh21.me.uk>
Sat, 1 Jun 2024 16:58:23 +0000 (17:58 +0100)
Still solves part 1

22/22b.bqn

index 99bbf6949b7042abe1256ca3f722e0c86837a663..e63865d4daac44b8673d9cf335e86a26149cb69a 100644 (file)
@@ -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⟩