19-1 fertig -- 19-2 kapituliert

This commit is contained in:
2023-12-19 18:42:09 +01:00
parent 55c8c741c6
commit c9c0feb1bc
3 changed files with 84 additions and 23 deletions

View File

@@ -5,7 +5,7 @@ data = []
# parse input
is_rule = True
input_file = open("input-ex", "r")
input_file = open("input", "r")
for line in input_file:
line = line.strip()
@@ -32,6 +32,7 @@ for line in input_file:
data.append(da)
input_file.close()
'''
# Ausgabe rules
for key in rules:
print(rules[key])
@@ -39,46 +40,43 @@ print("-------------------------------------------------------------------------
# Ausgabe data
for da in data:
print(da)
print("---------------------------------------------------------------------------")
'''
def do_test(eq, dat):
print(eq)
eq = eq.split(":")[0]
if eq.count("<") == 1:
eq = eq.split("<")
print(eq[0], dat[eq[0]],"teeeee")
if dat[eq[0]] < int(dat[1]):
if dat[eq[0]] < int(eq[1]):
return True
else:
return False
else:
eq = eq.split(">")
if dat[eq[0]] > int(dat[1]):
if dat[eq[0]] > int(eq[1]):
return True
else:
return False
def get_destination(k, dat):
def get_destination(k, werte):
if k == "R" or k == "A":
return k
for r in rules[k]:
print(r, dat)
if r.count(":") == 0:
if r == "R":
return "R"
elif r == "A":
return "A"
else:
get_destination(r, dat)
return get_destination(r, werte)
else:
x, m, a, s = dat["x"], dat["m"], dat["s"], dat["a"]
r = r.split(":")
if do_test(r[0], dat):
if r[1] == "R":
return "R"
elif r[1] == "A":
return "A"
else:
get_destination(r[1], dat)
if do_test(r[0], werte):
return get_destination(r[1], werte)
solution = 0
for i in range(len(data)):
r_or_a = get_destination("in", data[i])
if r_or_a == "A":
for key in data[i].keys():
solution += data[i][key]
print(get_destination("in", data[0]))
print("Lösung:", solution)