Best shuffle: Difference between revisions
Content added Content deleted
Alextretyak (talk | contribs) (Added 11l) |
(Added solution for Action!) |
||
Line 76: | Line 76: | ||
immediately, ytidammeiel ,(0) |
immediately, ytidammeiel ,(0) |
||
abba, baab ,(0) |
abba, baab ,(0) |
||
</pre> |
|||
=={{header|Action!}}== |
|||
<lang Action!>PROC BestShuffle(CHAR ARRAY orig,res) |
|||
BYTE i,j,len |
|||
CHAR tmp |
|||
len=orig(0) |
|||
SCopy(res,orig) |
|||
FOR i=1 TO len |
|||
DO |
|||
FOR j=1 TO len |
|||
DO |
|||
IF i#j AND orig(i)#res(j) AND orig(j)#res(i) THEN |
|||
tmp=res(i) res(i)=res(j) res(j)=tmp |
|||
FI |
|||
OD |
|||
OD |
|||
RETURN |
|||
PROC Test(CHAR ARRAY orig) |
|||
CHAR ARRAY res(100) |
|||
BYTE i,score |
|||
BestShuffle(orig,res) |
|||
score=0 |
|||
FOR i=1 TO orig(0) |
|||
DO |
|||
IF orig(i)=res(i) THEN |
|||
score==+1 |
|||
FI |
|||
OD |
|||
PrintF("%S, %S, (%B)%E",orig,res,score) |
|||
RETURN |
|||
PROC Main() |
|||
Test("abracadabra") |
|||
Test("seesaw") |
|||
Test("elk") |
|||
Test("grrrrrr") |
|||
Test("up") |
|||
Test("a") |
|||
RETURN</lang> |
|||
{{out}} |
|||
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Best_shuffle.png Screenshot from Atari 8-bit computer] |
|||
<pre> |
|||
abracadabra, caadrbabaar, (0) |
|||
seesaw, ewaess, (0) |
|||
elk, kel, (0) |
|||
grrrrrr, rgrrrrr, (5) |
|||
up, pu, (0) |
|||
a, a, (1) |
|||
</pre> |
</pre> |
||