49 lines
1.4 KiB
Text
49 lines
1.4 KiB
Text
|
|
F correct_case(string)
|
|||
|
|
R string.filter(s -> s.is_alpha()).map(s -> s.uppercase()).join(‘’)
|
|||
|
|
|
|||
|
|
F permu(String alp; num)
|
|||
|
|
R alp[num..]‘’alp[0 .< num]
|
|||
|
|
|
|||
|
|
F rotate_wheels(lalph, ralph, key)
|
|||
|
|
V newin = ralph.index(key)
|
|||
|
|
R (permu(lalph, newin), permu(ralph, newin))
|
|||
|
|
|
|||
|
|
F scramble_wheels(String =lalph, String =ralph)
|
|||
|
|
lalph = lalph[0]‘’lalph[2.<14]‘’lalph[1]‘’lalph[14..]
|
|||
|
|
ralph = ralph[1.<3]‘’ralph[4.<15]‘’ralph[3]‘’ralph[15..]‘’ralph[0]
|
|||
|
|
R (lalph, ralph)
|
|||
|
|
|
|||
|
|
F do_chao(=msg, =lalpha, =ralpha, en = 1B, show = 0B)
|
|||
|
|
msg = correct_case(msg)
|
|||
|
|
V out = ‘’
|
|||
|
|
I show
|
|||
|
|
print(‘=’ * 54)
|
|||
|
|
print((10 * ‘ ’)‘left:’(21 * ‘ ’)‘right: ’)
|
|||
|
|
print(‘=’ * 54)
|
|||
|
|
print(lalpha‘ ’ralpha" \n")
|
|||
|
|
L(l) msg
|
|||
|
|
I en
|
|||
|
|
(lalpha, ralpha) = rotate_wheels(lalpha, ralpha, l)
|
|||
|
|
out ‘’= lalpha[0]
|
|||
|
|
E
|
|||
|
|
(ralpha, lalpha) = rotate_wheels(ralpha, lalpha, l)
|
|||
|
|
out ‘’= ralpha[0]
|
|||
|
|
(lalpha, ralpha) = scramble_wheels(lalpha, ralpha)
|
|||
|
|
I show
|
|||
|
|
print(lalpha‘ ’ralpha)
|
|||
|
|
R out
|
|||
|
|
|
|||
|
|
V lalpha = ‘HXUCZVAMDSLKPEFJRIGTWOBNYQ’
|
|||
|
|
V ralpha = ‘PTLNBQDEOYSFAVZKGJRIHWXUMC’
|
|||
|
|
V msg = ‘WELLDONEISBETTERTHANWELLSAID’
|
|||
|
|
|
|||
|
|
print(‘L: ’lalpha)
|
|||
|
|
print(‘R: ’ralpha)
|
|||
|
|
print(‘I: ’msg)
|
|||
|
|
V o = do_chao(msg, lalpha, ralpha, 1B, 0B)
|
|||
|
|
print(‘O: ’o)
|
|||
|
|
print(‘D: ’do_chao(o, lalpha, ralpha, 0B, 0B))
|
|||
|
|
print()
|
|||
|
|
|
|||
|
|
do_chao(msg, lalpha, ralpha, 1B, 1B)
|