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 |
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 |
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 |
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 = |