Advertisement
rolfvanoven

troglodiet dag 5B processorverbrander

Dec 6th, 2021
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.13 KB | None | 0 0
  1. bestand = open('input.txt', 'r')
  2. alles = bestand.readlines()
  3. templijst = []
  4. horizontaal = []
  5. verticaal = []
  6. lorb = []
  7. lbro = []
  8. # tekst splitsen en in getallen omzetten:
  9. for sliert in range(len(alles)):
  10.   templijst.append(alles[sliert].split(" -> "))
  11. for sliert in range(len(templijst)):
  12.   for ding in range(2):
  13.     templijst[sliert][ding] = templijst[sliert][ding].split(",")
  14.     for dong in range(2):
  15.       templijst[sliert][ding][dong] = int(templijst[sliert][ding][dong])
  16.  
  17. # alleen rechte slierten:
  18. for sliert in range(len(templijst)):
  19.   if templijst[sliert][0][1] == templijst[sliert][1][1]:
  20.     horizontaal.append(templijst[sliert])
  21.   elif templijst[sliert][0][0] == templijst[sliert][1][0]:
  22.     verticaal.append(templijst[sliert])
  23.   elif templijst[sliert][0][0] < templijst[sliert][1][0]:
  24.     if templijst[sliert][0][1] < templijst[sliert][1][1]:
  25.       lorb.append(templijst[sliert])
  26.     else:
  27.       lbro.append(templijst[sliert])
  28.   else:
  29.     if templijst[sliert][0][1] < templijst[sliert][1][1]:
  30.       lbro.append(templijst[sliert])
  31.     else:
  32.       lorb.append(templijst[sliert])
  33.  
  34. # alles de goede kant op draaien:
  35. for sliert in range(len(horizontaal)):
  36.   if horizontaal[sliert][0][0] > horizontaal[sliert][1][0]:
  37.     omdraaien = horizontaal[sliert][1][0]
  38.     horizontaal[sliert][1][0] = horizontaal[sliert][0][0]
  39.     horizontaal[sliert][0][0] = omdraaien
  40. for sliert in range(len(verticaal)):
  41.   if verticaal[sliert][0][1] > verticaal[sliert][1][1]:
  42.     omdraaien = verticaal[sliert][1][1]
  43.     verticaal[sliert][1][1] = verticaal[sliert][0][1]
  44.     verticaal[sliert][0][1] = omdraaien
  45. for sliert in range(len(lorb)):
  46.   if lorb[sliert][0][0] > lorb[sliert][1][0]:
  47.     omdraaien = lorb[sliert][0]
  48.     lorb[sliert][0] = lorb[sliert][1]
  49.     lorb[sliert][1] = omdraaien
  50. for sliert in range(len(lbro)):
  51.   if lbro[sliert][0][0] > lbro[sliert][1][0]:
  52.     omdraaien = lbro[sliert][0]
  53.     lbro[sliert][0] = lbro[sliert][1]
  54.     lbro[sliert][1] = omdraaien
  55.  
  56. #tussendingen toevoegen:
  57. for sliert in range(len(horizontaal)):
  58.   for tussen in range((horizontaal[sliert][1][0] - horizontaal[sliert][0][0])-1):
  59.     horizontaal[sliert].append([horizontaal[sliert][0][0]+tussen+1, horizontaal[sliert][0][1]])
  60. for sliert in range(len(verticaal)):
  61.   for tussen in range((verticaal[sliert][1][1] - verticaal[sliert][0][1])-1):
  62.     verticaal[sliert].append([verticaal[sliert][0][0], verticaal[sliert][0][1]+tussen+1])
  63. for sliert in range(len(lorb)):
  64.   for tussen in range((lorb[sliert][1][1] - lorb[sliert][0][1])-1):
  65.     lorb[sliert].append([lorb[sliert][0][0]+tussen+1, lorb[sliert][0][1]+tussen+1])
  66. for sliert in range(len(lbro)):
  67.   for tussen in range((lbro[sliert][1][0] - lbro[sliert][0][0])-1):
  68.     lbro[sliert].append([lbro[sliert][0][0]+tussen+1, lbro[sliert][0][1]-tussen-1])
  69.  
  70. # antwoord uitrekenen:
  71. superlijst = []
  72. schijtlijst = []
  73. antwoord = 0
  74. for sliert in range(len(horizontaal)):
  75.   for pixel in range(len(horizontaal[sliert])):
  76.     if horizontaal[sliert][pixel] in superlijst:
  77.       if horizontaal[sliert][pixel] not in schijtlijst:
  78.         antwoord = antwoord + 1
  79.         schijtlijst.append(horizontaal[sliert][pixel])
  80.     else:
  81.       superlijst.append(horizontaal[sliert][pixel])
  82. for sliert in range(len(verticaal)):
  83.   for pixel in range(len(verticaal[sliert])):
  84.     if verticaal[sliert][pixel] in superlijst:
  85.       if verticaal[sliert][pixel] not in schijtlijst:
  86.         antwoord = antwoord + 1
  87.         schijtlijst.append(verticaal[sliert][pixel])
  88.     else:
  89.       superlijst.append(verticaal[sliert][pixel])
  90. for sliert in range(len(lorb)):
  91.   for pixel in range(len(lorb[sliert])):
  92.     if lorb[sliert][pixel] in superlijst:
  93.       if lorb[sliert][pixel] not in schijtlijst:
  94.         antwoord = antwoord + 1
  95.         schijtlijst.append(lorb[sliert][pixel])
  96.     else:
  97.       superlijst.append(lorb[sliert][pixel])
  98. for sliert in range(len(lbro)):
  99.   for pixel in range(len(lbro[sliert])):
  100.     if lbro[sliert][pixel] in superlijst:
  101.       if lbro[sliert][pixel] not in schijtlijst:
  102.         antwoord = antwoord + 1
  103.         schijtlijst.append(lbro[sliert][pixel])
  104.     else:
  105.       superlijst.append(lbro[sliert][pixel])
  106.  
  107. print(antwoord)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement