| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 | # https://adventofcode.com/2022/day/2
MOVE_SCORES = {
    "A": 1,
    "B": 2,
    "C": 3,
    "X": 0,
    "Y": 3,
    "Z": 6
}
MOVE_BEATS = {
    "A": "C",
    "B": "A",
    "C": "B"
}
MOVE_LOSES = {
    "A": "B",
    "B": "C",
    "C": "A"
}
def main():
    with open("input2.txt", "r") as file:
        moves = [line.strip() for line in file.readlines()]
    # moves = [(x, y) for line in inlines for x, y in line.split(" ")]
    scores = []
    for move in moves:
        (theirs, mine) = move.split(" ")
        cur_score = MOVE_SCORES[mine]
        if mine == "X":
            # Have to lose.
            # Add the score of the move that their move beats.
            cur_score += MOVE_SCORES[MOVE_BEATS[theirs]]
        elif mine == "Y":
            # Have to tie.
            # Add the score of the move that they made.
            cur_score += MOVE_SCORES[theirs]
        elif mine == "Z":
            # Have to win.
            # Add the score of the move that theirs loses to.
            cur_score += MOVE_SCORES[MOVE_LOSES[theirs]]
            
        scores.append(cur_score)
    print(sum(scores))
if __name__ == "__main__":
    main()
 |