Adds fcsc 2025 and scale 22x
This commit is contained in:
29
content/writeups/2025/fcsc/hardware/mechanical_display/solve.py
Executable file
29
content/writeups/2025/fcsc/hardware/mechanical_display/solve.py
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
def closest_number(target):
|
||||
numbers = list(range(60, 241, 10))
|
||||
target += 2
|
||||
closest = min(numbers, key=lambda x: abs(x - target))
|
||||
return closest
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
flag = ""
|
||||
values = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'F', 'S', '{', '}', '_']
|
||||
|
||||
with open('mechanical-display.vcd', 'r') as file:
|
||||
data = [line.strip() for line in file][11:]
|
||||
|
||||
last = -1
|
||||
first = data[1].split()[0][1:]
|
||||
second = data[2].split()[0][1:]
|
||||
for i in range(3, len(data) - 1, 2):
|
||||
first = data[i].split()[0][1:]
|
||||
second = data[i+1].split()[0][1:]
|
||||
diff = int(second) - int(first)
|
||||
if (diff - 7) > last or (diff + 7) < last:
|
||||
last = diff
|
||||
val = closest_number(diff)
|
||||
char = str(values[int(val/10 - 6)])
|
||||
flag += char
|
||||
print(flag)
|
||||
Reference in New Issue
Block a user