Jump to content

Flipping bits game: Difference between revisions

Added Uiua solution
imported>CyD
(Added Forth entry.)
(Added Uiua solution)
Line 7,092:
</pre>
 
=={{header|Uiua}}==
Uiua doesn't really support user input, so this game plays itself (no cheating though!).
[https://www.uiua.org/pad?src=0_12_0-dev_1__UyDihpAgOQpGciDihpAg4oqZ4peM4o2c4oqhwqziipkuCkZjIOKGkCDiipnil4zijYlGcuKKmSjijYkuKQpTaHVmZmxlIOKGkCDijaUo4p-oRnJ8RmPin6k8MC414pqCIOKMisOXU-KaginDlzNTClQg4oaQIFNodWZmbGUg4oavU19TIDAgIyBUYXJnZXQgc2V0dXAuIE9taXQgYFNodWZmbGVgIGZvciBwbGFpbiBncmlkLgpEIOKGkCAvKy8r4oy1LVQKCiMgQ291bGQgdXNlIEEqLCBidXQgdGhpcyBpcyBlYXNpbHkgc29sdmVkIHdpdGhvdXQgaXQuCiMg4peMYXN0YXIo4oqC4oqDKOKJoUZyfOKJoUZjKeKHoVPCpHzDt1MgRHw9MEQpCuKfnFviiJhdIFNodWZmbGUgVCAjIFNodWZmbGUgYW5kIGtlZXAgYSBjb3B5IGZvciB0aGUgb3V0cHV0Lgril4zijaIoCgogIOKKguKKgyjiiaFGcnziiaFGYynih6FTwqQgIyBBbGwgbmVpZ2hib3Vycy4KICDiipo9L-KGpy7iiaFELiAgICAgICAjIEZpbmQgbWluIGRpc3QsIGdldCBpbmRpY2VzIHRoYXQgZ2l2ZSB0aGF0LgogIOKKoeKKoiAgICAgICAgICAgICAjIFBpY2sgZmlyc3Qgb25lLiDiiqEo4oqh4oyKw5fimoLip7suKSB0byBwaWNrIGF0IHJhbmRvbS4gCiAg4oqZ4oqCLiAgICAgICAgICAgICMgU2F2ZSBhIGNvcHkgb2YgdGhlIG5ldyBzdGF0ZS4KfCDiiaAwRAopCuKfnCgkIl8gc3RlcHMuIi0x4qe7KeKHjAo= You can run it in Uiua Pad though.]
<syntaxhighlight lang="Uiua">
S ← 9
Fr ← ⊙◌⍜⊡¬⊙.
Fc ← ⊙◌⍉Fr⊙(⍉.)
Shuffle ← ⍥(⟨Fr|Fc⟩<0.5⚂ ⌊×S⚂)×3S
T ← Shuffle ↯S_S 0 # Target setup. Omit `Shuffle` for plain grid.
D ← /+/+⌵-T
 
# Could use A*, but this is easily solved without it.
# ◌astar(⊂⊃(≡Fr|≡Fc)⇡S¤|÷S D|=0D)
⟜[∘] Shuffle T # Shuffle and keep a copy for the output.
◌⍢(
 
⊂⊃(≡Fr|≡Fc)⇡S¤ # All neighbours.
⊚=/↧.≡D. # Find min dist, get indices that give that.
⊡⊢ # Pick first one. ⊡(⊡⌊×⚂⧻.) to pick at random.
⊙⊂. # Save a copy of the new state.
| ≠0D
)
⟜($"_ steps."-1⧻)⇌
</syntaxhighlight>
{{out}}
Sample output for a simple grid, with the target state being all zeros.
<pre>
"4 steps."
╭─
╷ 1 0 1 0
╷ 1 0 1 0
0 1 0 1
0 1 0 1
0 1 0 1
1 0 1 0
0 1 0 1
0 1 0 1
0 0 0 1
1 1 1 0
0 0 0 1
0 0 0 1
0 0 0 1
0 0 0 1
0 0 0 1
0 0 0 1
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
</pre>
=={{header|Wren}}==
{{trans|Kotlin}}
158

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.