aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--logic/dices.go11
1 files changed, 8 insertions, 3 deletions
diff --git a/logic/dices.go b/logic/dices.go
index 07c4a98..43dca22 100644
--- a/logic/dices.go
+++ b/logic/dices.go
@@ -1,6 +1,7 @@
package logic
import (
+ "errors"
"fmt"
"math/rand"
"sort"
@@ -10,14 +11,18 @@ var diceRunes = [7]string{"", "\u2680", "\u2681", "\u2682", "\u2683", "\u2684",
type Dices [5]int
-func (d *Dices) Roll(i []int) {
- if i == nil {
- i = []int{1,2,3,4,5}
+func (d *Dices) Roll(i []int) error {
+ if i == nil || len(i) == 0 {
+ i = []int{1, 2, 3, 4, 5}
}
for _, v := range i {
+ if v > 6 || v < 1 {
+ return errors.New("index out of range")
+ }
d[v-1] = rand.Int()%6 + 1
}
sort.Ints(d[0:])
+ return nil
}
func (d Dices) String() string {