Best shuffle: Difference between revisions

Content added Content deleted
(→‎{{header|Java}}: fix randomization bug)
Line 1,262: Line 1,262:
<lang Elena>#define system.
<lang Elena>#define system.
#define system'routines.
#define system'routines.

// --- shuffle ---


#symbol shuffle = (:aLiteral)
#symbol shuffle = (:aLiteral)
Line 1,268: Line 1,270:
#var aShuffled := literalControl toArray:aLiteral.
#var aShuffled := literalControl toArray:aLiteral.


control from:0 &till:aLength &do: i
control forrange &int:0 &int:(aLength-1) &do: (&int:i)
[
[
#var aChar := aLiteral@i.
#var aChar := aLiteral@i.
(aChar == (aShuffled@i)) ?
(aChar == (aShuffled@i)) ?
[
[
control from:0 &till:aLength &do: j
control forrange &int:0 &int:(aLength-1) &do: (&int:j)
[
[
#var anAltChar := aShuffled@j.
#var anAltChar := aShuffled@j.
Line 1,288: Line 1,290:
^ Summing new:(String new) foreach:aShuffled literal.
^ Summing new:(String new) foreach:aShuffled literal.
].
].

// --- ShuffleScore ---


#symbol scoreShuffle = (:anOriginal:aShuffled)
#symbol scoreShuffle = (:anOriginal:aShuffled)
Line 1,293: Line 1,297:
#var aScore := Integer new.
#var aScore := Integer new.
control from:0 &till:(anOriginal length) &do: i
control forrange &int:0 &int:(anOriginal length - 1) &do: (&int:i)
[ (anOriginal @ i) == (aShuffled @ i) ? [ aScore += 1. ]. ].
[ (anOriginal @ i) == (aShuffled @ i) ? [ aScore += 1. ]. ].
^ aScore number.
^ aScore number.
].
].

// --- Program ---


#symbol program =
#symbol program =