Best shuffle: Difference between revisions

Content added Content deleted
m (→‎{{header|Perl 6}}: fixed code and added output)
m (→‎{{header|Sidef}}: minor code simplifications)
Line 3,013: Line 3,013:
=={{header|Sidef}}==
=={{header|Sidef}}==
{{trans|Go}}
{{trans|Go}}
<lang ruby>func best_shuffle(original_word) {
<lang ruby>func best_shuffle(String orig) -> (String, Number) {


var s = original_word.chars;
var s = orig.chars
var t = s.shuffle;
var t = s.shuffle


s.range.each { |i|
s.range.each { |i|
s.range.each { |j|
s.range.each { |j|
i!=j && t[i]!=s[j] && t[j]!=s[i] && (
if (i!=j && t[i]!=s[j] && t[j]!=s[i]) {
t[i, j] = t[j, i];
t[i, j] = t[j, i];
break;
break;
);
}
}
}
}
}


var word = t.join('');
var word = t.join;
[word, original_word ^ word -> count("\0")];
(word, orig ^ word -> count("\0"));
}
}


<abracadabra seesaw elk grrrrrr up a>.each { |word|
<abracadabra seesaw elk grrrrrr up a>.each { |word|
var (sword, score) = best_shuffle(word)...;
var (sword, score) = best_shuffle(word)
"%-12s %12s: %d\n".printf(word, sword, score);
"%-12s %12s: %d\n".printf(word, sword, score)
}</lang>
}</lang>
{{out}}
{{out}}