25 lines
515 B
Go
25 lines
515 B
Go
|
package scrabble_score
|
||
|
|
||
|
import "strings"
|
||
|
|
||
|
// Score takes a word and returns the
|
||
|
// Scrabble score for that word
|
||
|
func Score(word string) int {
|
||
|
word = strings.ToUpper(word)
|
||
|
letterValues := map[rune]int{
|
||
|
'A': 1, 'E': 1, 'I': 1, 'O': 1, 'U': 1,
|
||
|
'L': 1, 'N': 1, 'R': 1, 'S': 1, 'T': 1,
|
||
|
'D': 2, 'G': 2,
|
||
|
'B': 3, 'C': 3, 'M': 3, 'P': 3,
|
||
|
'F': 4, 'H': 4, 'V': 4, 'W': 4, 'Y': 4,
|
||
|
'K': 5,
|
||
|
'J': 8, 'X': 8,
|
||
|
'Q': 10, 'Z': 10,
|
||
|
}
|
||
|
var ret int
|
||
|
for _, ch := range word {
|
||
|
ret += letterValues[ch]
|
||
|
}
|
||
|
return ret
|
||
|
}
|