diff options
Diffstat (limited to 'goffel.go')
| -rw-r--r-- | goffel.go | 54 |
1 files changed, 21 insertions, 33 deletions
@@ -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) } |
