Flipping bits game: Difference between revisions
Content added Content deleted
imported>CyD (Added Forth entry.) |
(Added Uiua solution) |
||
Line 7,092: | Line 7,092: | ||
</pre> |
</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}}== |
=={{header|Wren}}== |
||
{{trans|Kotlin}} |
{{trans|Kotlin}} |