2022 day 2
This commit is contained in:
2500
2022/02/input
Normal file
2500
2022/02/input
Normal file
File diff suppressed because it is too large
Load Diff
33
2022/02/part1
Executable file
33
2022/02/part1
Executable file
@@ -0,0 +1,33 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
# lose: 0
|
||||||
|
# draw: 3
|
||||||
|
# win: 6
|
||||||
|
|
||||||
|
outcomes = {
|
||||||
|
'A': { # rock: 1
|
||||||
|
'X': 1 + 3, # rock
|
||||||
|
'Y': 2 + 6, # paper
|
||||||
|
'Z': 3 + 0 # scissors
|
||||||
|
},
|
||||||
|
'B': { # paper: 2
|
||||||
|
'X': 1 + 0, # rock
|
||||||
|
'Y': 2 + 3, # paper
|
||||||
|
'Z': 3 + 6 # scissors
|
||||||
|
},
|
||||||
|
'C': { # scissors: 3
|
||||||
|
'X': 1 + 6, # rock
|
||||||
|
'Y': 2 + 0, # paper
|
||||||
|
'Z': 3 + 3 # scissors
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
score = 0
|
||||||
|
|
||||||
|
with open('input') as f:
|
||||||
|
for line in f:
|
||||||
|
moves = line.rstrip().split(" ")
|
||||||
|
score = score + outcomes[moves[0]][moves[1]]
|
||||||
|
|
||||||
|
print(score)
|
||||||
|
|
66
2022/02/part2
Executable file
66
2022/02/part2
Executable file
@@ -0,0 +1,66 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
# lose: 0
|
||||||
|
# draw: 3
|
||||||
|
# win: 6
|
||||||
|
|
||||||
|
# x: need to lose
|
||||||
|
# y: need to draw
|
||||||
|
# z: need to win
|
||||||
|
|
||||||
|
ROCK = 'A'
|
||||||
|
PAPER = 'B'
|
||||||
|
SCISSORS = 'C'
|
||||||
|
|
||||||
|
LOSE = 'X'
|
||||||
|
DRAW = 'Y'
|
||||||
|
WIN = 'Z'
|
||||||
|
|
||||||
|
outcomes = {
|
||||||
|
ROCK: { # rock: 1
|
||||||
|
ROCK: 1 + 3, # rock
|
||||||
|
PAPER: 2 + 6, # paper
|
||||||
|
SCISSORS: 3 + 0 # scissors
|
||||||
|
},
|
||||||
|
PAPER: { # paper: 2
|
||||||
|
ROCK: 1 + 0, # rock
|
||||||
|
PAPER: 2 + 3, # paper
|
||||||
|
SCISSORS: 3 + 6 # scissors
|
||||||
|
},
|
||||||
|
SCISSORS: { # scissors: 3
|
||||||
|
ROCK: 1 + 6, # rock
|
||||||
|
PAPER: 2 + 0, # paper
|
||||||
|
SCISSORS: 3 + 3 # scissors
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
strategies = {
|
||||||
|
ROCK: {
|
||||||
|
LOSE: SCISSORS,
|
||||||
|
DRAW: ROCK,
|
||||||
|
WIN: PAPER
|
||||||
|
},
|
||||||
|
PAPER: {
|
||||||
|
LOSE: ROCK,
|
||||||
|
DRAW: PAPER,
|
||||||
|
WIN: SCISSORS
|
||||||
|
},
|
||||||
|
SCISSORS: {
|
||||||
|
LOSE: PAPER,
|
||||||
|
DRAW: SCISSORS,
|
||||||
|
WIN: ROCK
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
score = 0
|
||||||
|
|
||||||
|
with open('input') as f:
|
||||||
|
for line in f:
|
||||||
|
parts = line.rstrip().split(" ")
|
||||||
|
|
||||||
|
oppo_move = parts[0]
|
||||||
|
our_move = strategies[oppo_move][parts[1]]
|
||||||
|
score = score + outcomes[oppo_move][our_move]
|
||||||
|
|
||||||
|
print(score)
|
||||||
|
|
Reference in New Issue
Block a user