logging and infinite melee
This commit is contained in:
parent
13c0cd047b
commit
472e2011b9
5
game.go
5
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
|
||||
|
4
http.go
4
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)
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user