aboutsummaryrefslogtreecommitdiff
path: root/goffel.go
diff options
context:
space:
mode:
Diffstat (limited to 'goffel.go')
-rw-r--r--goffel.go54
1 files changed, 21 insertions, 33 deletions
diff --git a/goffel.go b/goffel.go
index aab20ee..3ee90e0 100644
--- a/goffel.go
+++ b/goffel.go
@@ -9,46 +9,34 @@ import (
"muhq.space/go/muhq/goffel/uis"
)
-type UI interface {
- Init() error
- Round(r int) error
- BroadcastWinner()
-}
-
-func play(ui UI) {
- err := ui.Init()
- if err != nil {
- panic(err)
- }
-
- for round := 1; round <= 13; round++ {
- err = ui.Round(round)
- if err != nil {
- panic(err)
- }
- }
- ui.BroadcastWinner()
-}
+var (
+ port string
+ server bool
+ greeting string
+ client bool
+ fancy bool
+)
func main() {
rand.Seed(time.Now().Unix())
- var port = flag.Int("p", 1337, "port to listen for connections")
- var server = flag.Bool("s", false, "start a goffel server")
- var client = flag.Bool("c", false, "start a goffel client")
- var fancy = flag.Bool("f", false, "print utf8 dice runes")
+ flag.StringVar(&port, "p", "1337", "port to listen for connections")
+ flag.BoolVar(&server, "s", false, "start a goffel server")
+ flag.StringVar(&greeting, "g", "", "Welcome message")
+ flag.BoolVar(&client, "c", false, "start a goffel client")
+ flag.BoolVar(&fancy, "f", false, "print utf8 dice runes")
flag.Parse()
- logic.SetFancyPrint(*fancy)
-
- var ui UI
+ logic.SetFancyPrint(fancy)
- if *server {
- ui = &uis.Server{Port: *port}
- } else if *client {
- ui = &uis.Client{Port: *port}
+ if server {
+ s := uis.NewServer(port, greeting)
+ s.Serve()
+ } else if client {
+ c := uis.Client{Port: port}
+ c.Run()
} else {
- ui = &uis.Interactive{}
+ i := uis.Interactive{}
+ i.Run()
}
- play(ui)
}