From: Ben Harris Date: Thu, 13 Jun 2024 22:26:42 +0000 (+0100) Subject: 23a done X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~bjharris/git?a=commitdiff_plain;h=0c9a7299c857b511dd59cbee76ebbb07ba5b71bc;p=aoc-2022.git 23a done --- diff --git a/23/23a.bqn b/23/23a.bqn index b26080e..4f1029f 100644 --- a/23/23a.bqn +++ b/23/23a.bqn @@ -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←⟨«,»,»˘,«˘,⊢⟩ ⋄ unshifts←⟨»,«,«˘,»˘,⊢⟩ + proposers←⟨propose_n, propose_s, propose_w, propose_e, propose_0⟩ + shifts←⟨«,»,«˘,»˘,⊢⟩ ⋄ unshifts←⟨»,«,»˘,«˘,⊢⟩ 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