Make ui optional for gobot
This commit is contained in:
+26
-6
@@ -27,6 +27,7 @@ var addr = flag.String("addr", "ws://localhost:8666", "server hostname")
|
||||
var botname = flag.String("name", "gobot", "the name that other players will see")
|
||||
var forceJSON = flag.Bool("json", false, "force json encoding")
|
||||
var botType = flag.String("bot", "simple", "which Bot [fraserbot, simple]")
|
||||
var spectate = flag.Bool("spectate", false, "enable terminal visualizer")
|
||||
|
||||
func main() {
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
@@ -66,14 +67,33 @@ func main() {
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
var err error
|
||||
err = c.Negotiate("robot", c.Player)
|
||||
if err != nil {
|
||||
if err := c.Negotiate("robot", c.Player); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "%s: failed to negociate: %s\n", c.Name, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
if err := c.Play(); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "problem during play: %v\n", err)
|
||||
os.Exit(1)
|
||||
|
||||
if *spectate {
|
||||
ui := client.NewSpectator(c.Width, c.Height)
|
||||
players := client.MultiPlayer{
|
||||
c.Player,
|
||||
ui,
|
||||
}
|
||||
c.Player = players
|
||||
|
||||
go func() {
|
||||
if err := c.Play(); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "problem during play: %v\n", err)
|
||||
close(ui.Die)
|
||||
}
|
||||
}()
|
||||
if err := ui.Spectate(); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "problem during visualization: %+v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
} else {
|
||||
if err := c.Play(); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "problem during play: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user