aboutsummaryrefslogtreecommitdiff
path: root/uis/interactive.go
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fl.fischer@fau.de>2017-02-16 17:20:06 +0100
committerFlorian Fischer <florian.fl.fischer@fau.de>2017-02-16 17:20:06 +0100
commitdfe7ec47b87f5151abc9e28e3e943b006ffab464 (patch)
tree886e02df6c97246a939160b0cc9791659d333ae8 /uis/interactive.go
parentd123fa015393f6036f9854a49c38fa59d3b2140c (diff)
downloadgoffel-dfe7ec47b87f5151abc9e28e3e943b006ffab464.tar.gz
goffel-dfe7ec47b87f5151abc9e28e3e943b006ffab464.zip
remove restrictive interface
Diffstat (limited to 'uis/interactive.go')
-rw-r--r--uis/interactive.go74
1 files changed, 40 insertions, 34 deletions
diff --git a/uis/interactive.go b/uis/interactive.go
index f742d9a..ab23971 100644
--- a/uis/interactive.go
+++ b/uis/interactive.go
@@ -23,7 +23,15 @@ type Interactive struct {
var dices Dices
var reader = bufio.NewReader(os.Stdin)
-func (i *Interactive) Init() error {
+func (i *Interactive) Run() {
+ i.init()
+ for r := 1; r < 14; r++ {
+ i.round(r)
+ }
+ i.broadcastWinner()
+}
+
+func (i *Interactive) init() {
name := ""
count := 0
fmt.Println("Please enter your player names. An empty line ends the player registration.")
@@ -37,44 +45,12 @@ func (i *Interactive) Init() error {
count++
}
- return nil
}
-func (ui *Interactive) Round(r int) error {
+func (ui *Interactive) round(r int) {
fmt.Printf("Round %d\n", r)
for i := range ui.players {
turn(&ui.players[i])
}
- return nil
-}
-
-func (ui *Interactive) BroadcastWinner() {
- fmt.Println("Fin!")
- winners := []intPlayer{}
- max := 0
-
- for _, player := range ui.players {
- t := player.score.Score()
- if t > max || len(winners) == 0 {
- for _, winner := range winners {
- fmt.Printf("\t%v scored %v points\n", winner.name, max)
- }
- max = t
- winners = []intPlayer{player}
- } else if t == max {
- winners = append(winners, player)
- } else {
- fmt.Printf("\t%v scored %v points\n", player.name, t)
- }
- }
-
- if len(winners) == 1 {
- fmt.Println("The Winner is:")
- } else {
- fmt.Println("The Winners are:")
- }
- for _, winner := range winners {
- fmt.Printf("\t%v with %v points\n", winner.name, max)
- }
}
func turn(p *intPlayer) {
@@ -141,3 +117,33 @@ func turn(p *intPlayer) {
}
}
}
+
+func (ui *Interactive) broadcastWinner() {
+ fmt.Println("Fin!")
+ winners := []intPlayer{}
+ max := 0
+
+ for _, player := range ui.players {
+ t := player.score.Score()
+ if t > max || len(winners) == 0 {
+ for _, winner := range winners {
+ fmt.Printf("\t%v scored %v points\n", winner.name, max)
+ }
+ max = t
+ winners = []intPlayer{player}
+ } else if t == max {
+ winners = append(winners, player)
+ } else {
+ fmt.Printf("\t%v scored %v points\n", player.name, t)
+ }
+ }
+
+ if len(winners) == 1 {
+ fmt.Println("The Winner is:")
+ } else {
+ fmt.Println("The Winners are:")
+ }
+ for _, winner := range winners {
+ fmt.Printf("\t%v with %v points\n", winner.name, max)
+ }
+}