package day02 import ( "strings" ) func Part1(input string) int { var sum int = 0 values := map[string]int{ "Rock": 1, "Paper": 2, "Scissors": 3, } translateMap := map[string]string{ "X": "Rock", "Y": "Paper", "Z": "Scissors", "A": "Rock", "B": "Paper", "C": "Scissors", } winOn := map[string]string{ "Rock": "Scissors", "Paper": "Rock", "Scissors": "Paper", } lines := strings.Split(input, "\n") for _, line := range lines { objects := strings.Split(line, " ") opponent := translateMap[objects[0]] player := translateMap[objects[1]] sum = sum + values[player] if player == opponent { sum = sum + 3 } else if winOn[player] == opponent { sum = sum + 6 } } return sum } func Part2(input string) int { var sum int = 0 values := map[string]int{ "Rock": 1, "Paper": 2, "Scissors": 3, } translateMap := map[string]string{ "X": "Lose", "Y": "Draw", "Z": "Win", "A": "Rock", "B": "Paper", "C": "Scissors", } winOn := map[string]string{ "Rock": "Paper", "Paper": "Scissors", "Scissors": "Rock", } loseOn := map[string]string{ "Rock": "Scissors", "Paper": "Rock", "Scissors": "Paper", } lines := strings.Split(input, "\n") for _, line := range lines { objects := strings.Split(line, " ") opponent := translateMap[objects[0]] result := translateMap[objects[1]] if result == "Draw" { sum = sum + 3 + values[opponent] } else if result == "Win" { sum = sum + 6 + values[winOn[opponent]] } else { sum = sum + values[loseOn[opponent]] } } return sum}