obstacle support

This commit is contained in:
Fraser Graham
2013-10-25 22:30:15 -07:00
parent de68ec2e7b
commit 14f6c65e86
6 changed files with 83 additions and 12 deletions
+7 -1
View File
@@ -22,6 +22,7 @@ type Boardstate struct {
OtherRobots []OtherRobot `json:"robots"`
Projectiles []Projectile `json:"projectiles"`
Splosions []Splosion `json:"splosions"`
Obstacles []Obstacle `json:"obj"`
Reset bool `json:"reset"`
Type string `json:"type"`
Turn int `json:"turn"`
@@ -85,6 +86,7 @@ type game struct {
players map[*player]bool
projectiles map[*Projectile]bool
splosions map[*Splosion]bool
obstacles []Obstacle
register chan *player
unregister chan *player
turn int
@@ -102,6 +104,7 @@ func NewGame(id string, width, height float32) *game {
unregister: make(chan *player, maxPlayer),
projectiles: make(map[*Projectile]bool),
splosions: make(map[*Splosion]bool),
obstacles: GenerateObstacles(5, width, height),
players: make(map[*player]bool),
turn: 0,
width: width,
@@ -117,6 +120,8 @@ func NewGame(id string, width, height float32) *game {
func (g *game) tick(payload *Boardstate) int {
robots_remaining := 0
payload.Obstacles = g.obstacles
// Update Players
for p := range g.players {
if p.Robot.Health > 0 {
@@ -163,6 +168,7 @@ func (g *game) send_update(payload *Boardstate) {
player_payload := NewBoardstate()
player_payload.Projectiles = payload.Projectiles
player_payload.Splosions = payload.Splosions
player_payload.Obstacles = payload.Obstacles
player_payload.AllBots = payload.AllBots
player_payload.Turn = payload.Turn
player_payload.Reset = payload.Reset
@@ -242,7 +248,7 @@ func (g *game) run() {
log.Printf("Robot %v Wins", p.Robot.Id)
log.Printf("game %s: game over", g.id)
}
p.reset()
p.reset(g)
}
payload.Reset = true
} else {