76 lines
1.2 KiB
Python
76 lines
1.2 KiB
Python
import shared
|
|
from pprint import pprint as pp
|
|
|
|
rock = "rock"
|
|
paper = "paper"
|
|
scissors = "scissors"
|
|
|
|
lose = "X"
|
|
tie = "Y"
|
|
win = "Z"
|
|
|
|
Moves = {
|
|
"A":rock,
|
|
"B":paper,
|
|
"C":scissors,
|
|
|
|
"X":rock,
|
|
"Y":paper,
|
|
"Z":scissors,
|
|
}
|
|
|
|
Scores = {
|
|
rock: 1,
|
|
paper: 2,
|
|
scissors: 3
|
|
}
|
|
|
|
LosesTo = {
|
|
rock: paper,
|
|
paper: scissors,
|
|
scissors: rock
|
|
}
|
|
WinsTo = {
|
|
paper: rock,
|
|
scissors: paper,
|
|
rock: scissors
|
|
}
|
|
|
|
|
|
def winner(opponent, me):
|
|
if opponent == me:
|
|
return 3 + Scores[me]
|
|
|
|
# wins
|
|
if (opponent == rock and me == paper) or (opponent == paper and me == scissors) or (opponent == scissors and me == rock):
|
|
return 6 + Scores[me]
|
|
|
|
return 0 + Scores[me]
|
|
|
|
def which_move(opponent, me):
|
|
if me == lose:
|
|
return WinsTo[Moves[opponent]]
|
|
if me == win:
|
|
return LosesTo[Moves[opponent]]
|
|
if me == tie:
|
|
return Moves[opponent]
|
|
|
|
|
|
def run(moves):
|
|
score = 0
|
|
for move in moves:
|
|
opponent, me = move
|
|
my_move = which_move(opponent, me)
|
|
o_move = Moves[opponent]
|
|
pts = winner(o_move, my_move)
|
|
score += pts
|
|
print(score)
|
|
|
|
def main():
|
|
rows = [row.rstrip().split() for row in shared.load(2)]
|
|
run(rows)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|