Best shuffle: Difference between revisions

Content added Content deleted
m (→‎{{header|Sidef}}: updated code)
Line 3,410: Line 3,410:
var t = s.shuffle
var t = s.shuffle


s.range.each { |i|
for i (^s) {
s.range.each { |j|
for j (^s) {
if (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;
(t.join, s ~Z== t -> count(true))
(word, orig ^ word -> count("\0"));
}
}


<abracadabra seesaw elk grrrrrr up a>.each { |word|
for word (<abracadabra seesaw elk grrrrrr up a>) {
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)