package main import ( "flag" "math/rand" "time" "muhq.space/go/muhq/goffel/logic" "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() } 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.Parse() logic.SetFancyPrint(*fancy) var ui UI if *server { ui = &uis.Server{Port: *port} } else if *client { ui = &uis.Client{Port: *port} } else { ui = &uis.Interactive{} } play(ui) }