Best shuffle: Difference between revisions
Content added Content deleted
Drkameleon (talk | contribs) (Added Arturo implementation) |
(Best shuffle en FreeBASIC) |
||
Line 1,754: | Line 1,754: | ||
"a" "a" 1 |
"a" "a" 1 |
||
</pre> |
</pre> |
||
=={{header|FreeBASIC}}== |
|||
{{trans|Liberty BASIC}} |
|||
<lang freebasic> |
|||
Dim As String*11 lista(6) => {"abracadabra","seesaw","pop","grrrrrr","up","a"} |
|||
Function bestShuffle(s1 As String) As String |
|||
Dim As String s2 = s1 |
|||
Dim As Integer i, j, i1, j1 |
|||
For i = 1 To Len(s2) |
|||
For j = 1 To Len(s2) |
|||
If (i <> j) And (Mid(s2,i,1) <> Mid(s1,j,1)) And (Mid(s2,j,1) <> Mid(s1,i,1)) Then |
|||
If j < i Then i1 = j : j1 = i Else i1 = i : j1 = j |
|||
s2 = Left(s2,i1-1) + Mid(s2,j1,1) + Mid(s2,i1+1,(j1-i1)-1) + Mid(s2,i1,1) + Mid(s2,j1+1) |
|||
End If |
|||
Next j |
|||
Next i |
|||
bestShuffle = s2 |
|||
End Function |
|||
Dim As String palabra, bs |
|||
Dim As Integer puntos |
|||
For b As Integer = 0 To Ubound(lista)-1 |
|||
palabra = lista(b) |
|||
bs = bestShuffle(palabra) |
|||
puntos = 0 |
|||
For i As Integer = 1 To Len(palabra) |
|||
If Mid(palabra,i,1) = Mid(bs,i,1) Then puntos += 1 |
|||
Next i |
|||
Print palabra; " ==> "; bs; " (puntuaci¢n:"; puntos; ")" |
|||
Next b |
|||
Sleep |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
abracadabra ==> caadrbabaar (puntuación: 0) |
|||
seesaw ==> ewaess (puntuación: 0) |
|||
pop ==> opp (puntuación: 1) |
|||
grrrrrr ==> rgrrrrr (puntuación: 5) |
|||
up ==> pu (puntuación: 0) |
|||
a ==> a (puntuación: 1) |
|||
</pre> |
|||
=={{header|Go}}== |
=={{header|Go}}== |