#! /usr/bin/env python3
import sys
def read_leds(filename):
leds = {}
err = 0
with open(filename, "r") as f:
for line in f:
fields = line.split()
ledno = int(fields[0])
led = {
"ledno": ledno,
"x": int(fields[1]),
"y": int(fields[2]),
"type": fields[3],
"copies": []
}
if led["type"] == "-":
led["copies"].append({"x": led["x"] - 1, "y": led["y"]})
led["copies"].append({"x": led["x"] + 1, "y": led["y"]})
elif led["type"] == "|":
led["copies"].append({"x": led["x"], "y": led["y"] - 1})
led["copies"].append({"x": led["x"], "y": led["y"] + 1})
elif led["type"] == "/":
led["copies"].append({"x": led["x"] - 1, "y": led["y"] + 1})
led["copies"].append({"x": led["x"] + 1, "y": led["y"] - 1})
elif led["type"] == "\\":
led["copies"].append({"x": led["x"] - 1, "y": led["y"] - 1})
led["copies"].append({"x": led["x"] + 1, "y": led["y"] + 1})
else:
print(
"led {:d} unknown type \"{:s}\"".format(ledno,
led["type"]),
file=sys.stderr)
leds[ledno] = led
# assign indices
leds2 = []
for ledno in sorted(leds):
led = leds[ledno]
idx = len(leds2)
led["idx"] = idx
leds2.append(led)
return leds2
def output(leds):
cnt = 0
for led in leds:
cnt += 1 + len(led["copies"])