Zebra puzzle: Difference between revisions
Content added Content deleted
m (→Constraint Programming Version: Update link.) |
(Added Uiua solution) |
||
Line 7,563: | Line 7,563: | ||
</pre> |
</pre> |
||
=={{header|Uiua}}== |
|||
Usese the same re-ordering of rules as a lot of other approaches. Builds and filters the list as it goes. |
|||
<syntaxhighlight lang="uiua"> |
|||
Perms ← ☇1⍉∧(≡↻⇡⟜↯+1⟜⊂):¤¤°⊂⇡ |
|||
Ps ← ≡⊏⊙¤Perms ⧻. |
|||
Ps "BGRWY" # Col = 0 |
|||
▽⊸(=-1⊃(⊗@W|⊗@G)) # W right of G |
|||
/⊂⊞⊟ :Ps "DEGNS" # Nation = 1 |
|||
▽⊸≡(=@N⊡0⊡1) # Norwegian in pos 0 |
|||
▽⊸≡(=⊃(⊗@E⊡1|⊗@R⊡0)) # Red == English |
|||
▽⊸≡(=1⌵-⊃(⊗@N⊡1|⊗@B⊡0)) # Blue next to Norwegian |
|||
/⊂⊞⊂ :Ps"BCDHZ" # Pets = 2 |
|||
▽⊸≡(=⊃(⊗@D⊡2|⊗@S⊡1)) # Swede owns dog |
|||
/⊂⊞⊂ :Ps"BCMTW" # Drinks = 3 |
|||
▽⊸≡(=@M⊡2⊡3) # Milk in pos 2 |
|||
▽⊸≡(=⊃(⊗@T⊡3|⊗@D⊡1)) # Dane drinks tea |
|||
▽⊸≡(=⊃(⊗@C⊡3|⊗@G⊡0)) # Green = Coffee |
|||
/⊂⊞⊂ :Ps"BbDpP" # Cigs = 4 |
|||
▽⊸≡(=⊃(⊗@p⊡4|⊗@B⊡2)) # PallMall = Birds |
|||
▽⊸≡(=⊃(⊗@D⊡4|⊗@Y⊡0)) # Dunhill = Yellow |
|||
▽⊸≡(=⊃(⊗@b⊡4|⊗@B⊡3)) # BlueM = Beer |
|||
▽⊸≡(=⊃(⊗@P⊡4|⊗@G⊡1)) # Prince = German |
|||
▽⊸≡(=1⌵-⊃(⊗@B⊡4|⊗@C⊡2)) # Cat next to Blend |
|||
▽⊸≡(=1⌵-⊃(⊗@D⊡4|⊗@H⊡2)) # Horse next to Dunhill |
|||
▽⊸≡(=1⌵-⊃(⊗@B⊡4|⊗@W⊡3)) # Water next to Blend |
|||
&p $"Solutions found: _" ⧻. |
|||
&p$"_ owns the Z"⊡:⊡1,⊗@Z⊡2.⊢ |
|||
&p"One line per house: " |
|||
&p"Col\tNat\tPet\tDrink\tCig" |
|||
≡(&p/(⊂⊂)"\t")⍉ |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
Solutions found: 1 |
|||
G owns the Z |
|||
One line per house: |
|||
Col Nat Pet Drink Cig |
|||
Y N C W D |
|||
B D H T B |
|||
R E B M p |
|||
G G Z C P |
|||
W S D B b |
|||
</pre> |
|||
=={{header|VBA}}== |
=={{header|VBA}}== |
||
{{trans|Phix}} |
{{trans|Phix}} |