69 lines
1.2 KiB
Python
69 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()
|