Files
advent-of-code-2022/day02/common/round.go
2022-12-02 07:41:32 +01:00

48 lines
789 B
Go

package common
type Move int
const (
Rock Move = iota
Paper
Scissor
)
type Round struct {
Opponent Move
Response Move
}
func (round Round) GetScore() int {
score := 0
switch round {
case Round{Rock, Rock}:
score += 4
case Round{Rock, Paper}:
score += 8
case Round{Rock, Scissor}:
score += 3
case Round{Paper, Rock}:
score += 1
case Round{Paper, Paper}:
score += 5
case Round{Paper, Scissor}:
score += 9
case Round{Scissor, Rock}:
score += 7
case Round{Scissor, Paper}:
score += 2
case Round{Scissor, Scissor}:
score += 6
}
return score
}
func GetTotalScore(rounds []Round) int {
score := 0
for _, round := range rounds {
score += round.GetScore()
}
return score
}