diff --git a/game.go b/game.go index b9e721f..f92420a 100644 --- a/game.go +++ b/game.go @@ -155,12 +155,23 @@ func (g *Game) Join(uid uuid.UUID) { Direction: Right, } - p.MinR, p.MaxR = int(p.Y), int(p.Y) - p.MinC, p.MaxC = int(p.X), int(p.X) - g.World[int(p.Y)][int(p.X)].TakenPlayerId = p.Id + g.claimStartingArea(p) g.Players[uid] = p } +func (g *Game) claimStartingArea(p *Player) { + p.MinR = max(0, int(p.Y)-1) + p.MaxR = min(int(p.Y)+1, g.Height-1) + p.MinC = max(0, int(p.X)-1) + p.MaxC = min(int(p.X)+1, g.Width-1) + + for row := p.MinR; row <= p.MaxR; row++ { + for col := p.MinC; col <= p.MaxC; col++ { + g.World[row][col].TakenPlayerId = p.Id + } + } +} + func (g *Game) getMinAvailablePlayerId() PlayerId { pIds := make(map[PlayerId]struct{}) for _, p := range g.Players {