Best shuffle: Difference between revisions
Content added Content deleted
(Added Easylang) |
No edit summary |
||
Line 2,369: | Line 2,369: | ||
"a" "a" 1 |
"a" "a" 1 |
||
</pre> |
</pre> |
||
=={{header|Free Pascal}}== |
|||
<syntaxhighlight lang="pascal"> |
|||
Program BestShuffle; |
|||
Const |
|||
arr : array[1..6] Of string = ('abracadabra','seesaw','elk','grrrrrr','up','a'); |
|||
Function Shuffle(inp: String): STRING; |
|||
Var x,ReplacementDigit : longint; |
|||
ch : char; |
|||
Begin |
|||
If length(inp) > 1 Then |
|||
Begin |
|||
Randomize; |
|||
For x := 1 To length(inp) Do |
|||
Begin |
|||
Repeat |
|||
ReplacementDigit := random(length(inp))+1; |
|||
Until (ReplacementDigit <> x); |
|||
ch := inp[x]; |
|||
inp[x] := inp[ReplacementDigit]; |
|||
inp[ReplacementDigit] := ch; |
|||
End; |
|||
End; |
|||
shuffle := inp; |
|||
End; |
|||
Function score(OrgString,ShuString : String) : integer; |
|||
Var i : integer; |
|||
Begin |
|||
score := 0; |
|||
For i := 1 To length(OrgString) Do |
|||
If OrgString[i] = ShuString[i] Then inc(score); |
|||
End; |
|||
Var i : integer; |
|||
shuffled : string; |
|||
Begin |
|||
For i := low(arr) To high(arr) Do |
|||
Begin |
|||
shuffled := shuffle(arr[i]); |
|||
writeln(arr[i],' , ',shuffled,' , (',score(arr[i],shuffled),')'); |
|||
End; |
|||
End. |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
abracadabra , baraadacbar , (3) |
|||
seesaw , esaews , (0) |
|||
elk , ekl , (1) |
|||
grrrrrr , rrgrrrr , (5) |
|||
up , up , (2) |
|||
a , a , (1) |
|||
</pre> |
|||
=={{header|FreeBASIC}}== |
=={{header|FreeBASIC}}== |
||
{{trans|Liberty BASIC}} |
{{trans|Liberty BASIC}} |
||
Line 3,442: | Line 3,385: | ||
up, pu, (0) |
up, pu, (0) |
||
a, a, (1)</pre> |
a, a, (1)</pre> |
||
=={{header|Pascal}}== |
|||
==={{header|Free Pascal}}=== |
|||
<syntaxhighlight lang="pascal"> |
|||
Program BestShuffle; |
|||
Const |
|||
arr : array[1..6] Of string = ('abracadabra','seesaw','elk','grrrrrr','up','a'); |
|||
Function Shuffle(inp: String): STRING; |
|||
Var x,ReplacementDigit : longint; |
|||
ch : char; |
|||
Begin |
|||
If length(inp) > 1 Then |
|||
Begin |
|||
Randomize; |
|||
For x := 1 To length(inp) Do |
|||
Begin |
|||
Repeat |
|||
ReplacementDigit := random(length(inp))+1; |
|||
Until (ReplacementDigit <> x); |
|||
ch := inp[x]; |
|||
inp[x] := inp[ReplacementDigit]; |
|||
inp[ReplacementDigit] := ch; |
|||
End; |
|||
End; |
|||
shuffle := inp; |
|||
End; |
|||
Function score(OrgString,ShuString : String) : integer; |
|||
Var i : integer; |
|||
Begin |
|||
score := 0; |
|||
For i := 1 To length(OrgString) Do |
|||
If OrgString[i] = ShuString[i] Then inc(score); |
|||
End; |
|||
Var i : integer; |
|||
shuffled : string; |
|||
Begin |
|||
For i := low(arr) To high(arr) Do |
|||
Begin |
|||
shuffled := shuffle(arr[i]); |
|||
writeln(arr[i],' , ',shuffled,' , (',score(arr[i],shuffled),')'); |
|||
End; |
|||
End. |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
abracadabra , baraadacbar , (3) |
|||
seesaw , esaews , (0) |
|||
elk , ekl , (1) |
|||
grrrrrr , rrgrrrr , (5) |
|||
up , up , (2) |
|||
a , a , (1) |
|||
</pre> |
|||
=={{header|Perl}}== |
=={{header|Perl}}== |
||
The Algorithm::Permute module does not ship with perl, but is freely available from CPAN. |
The Algorithm::Permute module does not ship with perl, but is freely available from CPAN. |