49 lines
1.4 KiB
Plaintext
49 lines
1.4 KiB
Plaintext
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)
|