Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- f = open("code.txt", "r")
- l = []
- for x in f.readlines():
- l.append(x.strip())
- def translate(letter):
- val = 0
- for i in range(5):
- val += int(letter[i])*(2**(4-i))
- print chr(val + 96),
- def ruru(code):
- r1 = [1, 1, 0, 0, 1, 1, 0, 0 ,0]
- r2 = [1, 1, 1, 0, 0, 0, 1, 0, 0]
- r3 = [1, 0, 1, 1, 0, 0, 0, 1, 0]
- r4 = [1, 0, 0, 1, 1, 0 ,0, 0, 1]
- s1 = 0
- s2 = 0
- s3 = 0
- s4 = 0
- for i in range(9):
- digit = int(code[i])
- s1 += digit*r1[i]
- s2 += digit*r2[i]
- s3 += digit*r3[i]
- s4 += digit*r4[i]
- res = [s1%2, s2%2, s3%2, s4%2]
- return res
- # 1 1111
- # 2 1100
- # 3 0110
- # 4 0011
- # 5 1001
- # 6 1000
- # 7 0100
- # 8 0010
- # 9 0001
- def correct(code):
- val = ruru(code)
- listed = list(code)
- if val == [1, 1, 1, 1]:
- listed[0] = str((int(listed[0]) + 1)%2)
- return "".join(listed)
- if val == [1, 1, 0, 0]:
- listed[1] = str((int(listed[1]) + 1)%2)
- return "".join(listed)
- if val == [0, 1, 1, 0]:
- listed[2] = str((int(listed[2]) + 1)%2)
- return "".join(listed)
- if val == [0, 0, 1, 1]:
- listed[3] = str((int(listed[3]) + 1)%2)
- return "".join(listed)
- if val == [1, 0, 0, 1]:
- listed[4] = str((int(listed[4]) + 1)%2)
- return "".join(listed)
- if val == [1, 0, 0, 0]:
- listed[5] = str((int(listed[5]) + 1)%2)
- return "".join(listed)
- if val == [0, 1, 0, 0]:
- listed[6] = str((int(listed[6]) + 1)%2)
- return "".join(listed)
- if val == [0, 0, 1, 0]:
- listed[7] = str((int(listed[7]) + 1)%2)
- return "".join(listed)
- if val == [0, 0, 0, 1]:
- listed[8] = str((int(listed[8]) + 1)%2)
- return "".join(listed)
- return code
- corrected = [correct(x) for x in l]
- final = [x[0:5] for x in corrected]
- for x in final:
- translate(x)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement