chiark / gitweb /
23a done
authorBen Harris <bjh21@bjh21.me.uk>
Thu, 13 Jun 2024 22:26:42 +0000 (23:26 +0100)
committerBen Harris <bjh21@bjh21.me.uk>
Thu, 13 Jun 2024 22:26:42 +0000 (23:26 +0100)
23/23a.bqn

index b26080e669f0db32dcb0bf3c1fb5828586f79434..4f1029f9e8c49bd8f5c853cd59cfc733ff3b23ad 100644 (file)
@@ -4,28 +4,40 @@ self←[0‿0‿0,0‿1‿0,0‿0‿0]
 near←[1‿1‿1,1‿0‿1,1‿1‿1]
 n   ←[1‿1‿1,0‿0‿0,0‿0‿0]
 s   ←[0‿0‿0,0‿0‿0,1‿1‿1]
-e   ←[0‿0‿1,0‿0‿1,0‿0‿1]
 w   ←[1‿0‿0,1‿0‿0,1‿0‿0]
+e   ←[0‿0‿1,0‿0‿1,0‿0‿1]
+none←[0‿0‿0,0‿0‿0,0‿0‿0]
 Any←{∨´⥊𝕨∧𝕩}
 
-ProposeN←{∧´(𝕩⊸Any)¨⟨self,near⟩∧(¬𝕩 Any n)}
-ProposeS←{∧´(𝕩⊸Any)¨⟨self,near,n⟩∧(¬𝕩 Any s)}
-ProposeE←{∧´(𝕩⊸Any)¨⟨self,near,n,s⟩∧(¬𝕩 Any e)}
-ProposeW←{∧´(𝕩⊸Any)¨⟨self,near,n,s,e⟩∧(¬𝕩 Any w)}
-Propose0←{∧´(𝕩⊸Any)¨⟨self,near,n,s,e,w⟩}
+Propose←{⟨inc, ex⟩ 𝕊 𝕩:(∧´(𝕩⊸Any)¨⟨self,near⟩∾inc)∧(¬𝕩 Any ex)}
+cycle ← >{{1↓↑𝕩}⌾(𝕩⊸⌽)⟨n,s,w,e⟩}¨↕4
+MkProposer←{⟨¯1↓𝕩,¯1⊑𝕩⟩⊸Propose}
+⟨propose_n,propose_s,propose_w,propose_e⟩←MkProposer¨⊏cycle
+propose_0a←MkProposer⟨n,s,w,e,none⟩ # Not moving because many neighbours
+Propose_0b←≡⟜self # Not moving because alone
+Propose_0←Propose_0a∨Propose_0b
+
+Turn←{ 𝕤
+  cycle ↩ 1⌽cycle
+  ⟨propose_n,propose_s,propose_w,propose_e⟩↩MkProposer¨⊏cycle
+}
 
 Pad←{ »˘»(2+≢𝕩)↑𝕩 }
+Trim1←{ (∨`∨´˘𝕩)/𝕩 } # Trim empty rows from north edge
+Trim←{ Trim1 Trim1⌾⍉ Trim1⌾⌽ Trim1⌾(⌽∘⍉) 𝕩 } # Trim all round
 
 Round←{𝕊map:
   map Pad↩
-  proposers←⟨propose_n, propose_s, propose_e, propose_w, propose_0⟩
-  shiftsâ\86\90â\9f¨Â«,»,»Ë\98,«Ë\98\8a¢â\9f© â\8b\84 unshiftsâ\86\90â\9f¨Â»,«,«Ë\98,»˘,⊢⟩
+  proposers←⟨propose_n, propose_s, propose_w, propose_e, propose_0⟩
+  shiftsâ\86\90â\9f¨Â«,»,«Ë\98,»Ë\98\8a¢â\9f© â\8b\84 unshiftsâ\86\90â\9f¨Â»,«,»Ë\98,«˘,⊢⟩
   proposals←{ Pad 𝕏⎉2⟨3,3⟩↕map }¨proposers
   collisions← 1<+´⥊ shifts { 𝕎 𝕩 }¨ proposals
   stay← unshifts { 𝕩∧ 𝕎 collisions }¨ proposals
   map↩(∨´stay)∨(∨´ shifts { 𝕎 𝕩 }¨ proposals∧¬stay)
+  Turn @
+  •Show Trim map
 }
 
-Main←Round⍟1
+Main←{+´¬⥊ Round⍟10 𝕩}
 
 •Show Main Prep •file.Lines ⊑•args