client/botspectate/main.go

56 lines
1.0 KiB
Go

package main
import (
"flag"
"log"
"math/rand"
"time"
"hackerbots.us/client"
)
var serverHostname = flag.String("server", "localhost", "server hostname")
var port = flag.Int("port", 8666, "server port")
var verbose = flag.Bool("verbose", false, "run verbosly")
var forceJSON = flag.Bool("json", false, "force json encoding")
func main() {
log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
rand.Seed(time.Now().UnixNano())
var gameId string
flag.Parse()
if flag.NArg() < 1 {
gameId = "debug"
} else {
gameId = flag.Arg(0)
}
c := &client.Client{
Server: *serverHostname,
Port: *port,
Name: "bspect",
GameId: gameId,
Verbose: *verbose,
ForceJSON: *forceJSON,
}
var err error
err = c.Negociate("spectator")
if err != nil {
log.Fatalf("%s: failed to negociate: %s", c.Name, err)
}
spectator := client.NewSimpleSpectator(
c.Game.BoardSize.Width,
c.Game.BoardSize.Height,
)
c.Player = spectator
go func() {
if err := c.Play(); err != nil {
close(spectator.Die)
}
}()
spectator.Run()
}