47 lines
826 B
Go
47 lines
826 B
Go
package main
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"os"
|
|
"aoc2022/day02/common"
|
|
)
|
|
|
|
func Parse(scanner bufio.Scanner) []common.Round {
|
|
rounds := []common.Round{}
|
|
|
|
for scanner.Scan() {
|
|
line := scanner.Text()
|
|
|
|
var opponent common.Move
|
|
switch line[0] {
|
|
case 'A':
|
|
opponent = common.Rock
|
|
case 'B':
|
|
opponent = common.Paper
|
|
case 'C':
|
|
opponent = common.Scissor
|
|
}
|
|
|
|
var response common.Move
|
|
switch line[2] {
|
|
case 'X':
|
|
response = common.Rock
|
|
case 'Y':
|
|
response = common.Paper
|
|
case 'Z':
|
|
response = common.Scissor
|
|
}
|
|
|
|
rounds = append(rounds, common.Round{Opponent: opponent, Response: response})
|
|
}
|
|
|
|
return rounds
|
|
}
|
|
|
|
func main() {
|
|
rounds := Parse(*bufio.NewScanner(os.Stdin))
|
|
|
|
fmt.Println(common.GetTotalScore(rounds))
|
|
}
|