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 }