diff --git a/game.go b/game.go index b196299..cccdcff 100644 --- a/game.go +++ b/game.go @@ -45,7 +45,6 @@ func NewGame(id string, width, height float64) *game { } func (g *game) run() { - started := false var t0, t1 time.Time payload := bot.NewBoardstate() for { @@ -61,7 +60,6 @@ func (g *game) run() { return case p := <-g.register: g.players[p] = true - started = true case p := <-g.unregister: delete(g.players, p) close(p.send) @@ -74,9 +72,6 @@ func (g *game) run() { // XXX: This is very racy!! It was at bottom of loop and empty // stuff was going out payload.EmptySlices() - if started && len(g.players) == 0 { - g.kill <- true - } g.turn++ payload.Turn = g.turn diff --git a/http.go b/http.go index d231762..626daac 100644 --- a/http.go +++ b/http.go @@ -123,7 +123,7 @@ func addPlayer(ws *websocket.Conn) { }() go p.sender() p.recv() - log.Printf("game %s: %v has been disconnect from this game\n", gid, p.Robot.Id) + log.Printf("game %s: player %v has been disconnected from this game\n", gid.Id, p.Robot.Id) } else { s := &Spectator{ send: make(chan *bot.Boardstate), @@ -134,6 +134,6 @@ func addPlayer(ws *websocket.Conn) { game.sunregister <- s }() s.sender() - log.Printf("%+v has been disconnect from this game\n", s) + log.Printf("game %s: spectator %+v has been disconnected from this game\n", s) } } diff --git a/protocol.go b/protocol.go index 20204dc..97c9f66 100644 --- a/protocol.go +++ b/protocol.go @@ -4,6 +4,7 @@ import ( "bitbucket.org/hackerbots/bot" "code.google.com/p/go.net/websocket" "errors" + "log" ) func Negociate(ws *websocket.Conn, id string, width, height float64) (*bot.Config, error) { @@ -20,12 +21,14 @@ func Negociate(ws *websocket.Conn, id string, width, height float64) (*bot.Confi return nil, errors.New("could not parse id") } if v, msg := clientid.Valid(); !v { + log.Printf("clientid is invalid: %+v", clientid) websocket.JSON.Send( ws, bot.NewFailure(msg), ) return nil, errors.New(msg) } + log.Printf("clientid: %+v", clientid) gameParam := bot.NewGameParam(width, height) err = websocket.JSON.Send(ws, gameParam) @@ -33,11 +36,15 @@ func Negociate(ws *websocket.Conn, id string, width, height float64) (*bot.Confi websocket.JSON.Send(ws, bot.NewFailure("generic server error")) return nil, err } + log.Printf("gameparam: %+v", gameParam) switch clientid.Type { case "robot": var conf bot.Config + log.Printf("got here?") for { + log.Printf("%s Waiting for client to send conf ...", id) err = websocket.JSON.Receive(ws, &conf) + log.Printf("conf received: %+v", conf) if err != nil { return nil, err }