add 2022/day02
This commit is contained in:
parent
f3d1c219f1
commit
968207eb83
1 changed files with 60 additions and 0 deletions
60
2022/02/main.py
Normal file
60
2022/02/main.py
Normal file
|
@ -0,0 +1,60 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- encoding: utf-8; py-indent-offset: 4 -*-
|
||||
|
||||
# Author: Sebastian Mark
|
||||
# CC-BY-SA (https://creativecommons.org/licenses/by-sa/4.0/deed.de)
|
||||
|
||||
# pylint: disable=missing-module-docstring,missing-function-docstring,consider-using-f-string
|
||||
|
||||
|
||||
def readinput():
|
||||
lines = []
|
||||
with open("input", "r", encoding="utf-8") as file:
|
||||
for line in file.readlines():
|
||||
lines.append(line.split())
|
||||
return lines
|
||||
|
||||
|
||||
def main():
|
||||
guide = readinput()
|
||||
|
||||
shapes1 = {
|
||||
"X": {"beats": "C", "tie": "A", "score": 1}, # ROCK
|
||||
"Y": {"beats": "A", "tie": "B", "score": 2}, # PAPER
|
||||
"Z": {"beats": "B", "tie": "C", "score": 3}, # SCISSORS
|
||||
}
|
||||
|
||||
shapes2 = {
|
||||
"A": {"beats": "Z", "beat_by": "Y", "tie": "X"}, # ROCK
|
||||
"B": {"beats": "X", "beat_by": "Z", "tie": "Y"}, # PAPER
|
||||
"C": {"beats": "Y", "beat_by": "X", "tie": "Z"}, # SCISSORS
|
||||
}
|
||||
|
||||
# part 1
|
||||
totalscore = 0
|
||||
for you, me in guide:
|
||||
if shapes1[me]["beats"] == you: # won
|
||||
totalscore += shapes1[me]["score"] + 6
|
||||
elif shapes1[me]["tie"] == you: # tie
|
||||
totalscore += shapes1[me]["score"] + 3
|
||||
else: # lost
|
||||
totalscore += shapes1[me]["score"]
|
||||
print("Totalscore (Part 1): %d" % totalscore)
|
||||
|
||||
# part2
|
||||
totalscore = 0
|
||||
for you, me in guide:
|
||||
if me == "X": # need to lose
|
||||
choosen = shapes2[you]["beats"]
|
||||
totalscore += shapes1[choosen]["score"]
|
||||
elif me == "Y": # need tie
|
||||
choosen = shapes2[you]["tie"]
|
||||
totalscore += shapes1[choosen]["score"] + 3
|
||||
else: # need win
|
||||
choosen = shapes2[you]["beat_by"]
|
||||
totalscore += shapes1[choosen]["score"] + 6
|
||||
print("Totalscore (Part 2): %d" % totalscore)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Reference in a new issue