Flipping bits game: Difference between revisions

Content added Content deleted
(Add BCPL)
Line 3,468: Line 3,468:
You win!! Press enter to play again or type END to quit.
You win!! Press enter to play again or type END to quit.
</pre>
</pre>

=={{header|Mathematica}}/{{header|Wolfram Language}}==
<lang Mathematica>ClearAll[PermuteState]
PermuteState[state_, {rc_, n_Integer}] := Module[{s},
s = state;
Switch[rc, "R",
s[[n]] = 1 - s[[n]],
"C",
s[[All, n]] = 1 - s[[All, n]]
];
s
]
SeedRandom[1337];
n = 3;
goalstate = state = RandomChoice[{0, 1}, {n, n}];
While[goalstate == state,
permutations = {RandomChoice[{"C", "R"}, 20], RandomInteger[{1, n}, 20]} // Transpose;
state = Fold[PermuteState, state, permutations];
];
i = 0;
Grid[goalstate, ItemSize -> {5, 3}, Frame -> True]
b1 = Button["", state = PermuteState[state, {"C", #}]; i++;
If[state === goalstate, MessageDialog["You Won!"]]] & /@ Range[n];
b2 = Button["", state = PermuteState[state, {"R", #}]; i++;
If[state === goalstate, MessageDialog["You Won!"]]] & /@ Range[n];
Dynamic[Grid[
Prepend[MapThread[Prepend, {state, b2}],
Prepend[b1, Row[{"Flips: ", i}]]], Frame -> True
]]</lang>


=={{header|MATLAB}}==
=={{header|MATLAB}}==