Remove equidistant food spawns that are closer to center.
This commit is contained in:
parent
4df2c65432
commit
6e01793750
2 changed files with 81 additions and 18 deletions
16
board.go
16
board.go
|
|
@ -183,11 +183,19 @@ func PlaceFoodFixed(b *BoardState) error {
|
|||
if isOccupiedAlready {
|
||||
continue
|
||||
}
|
||||
// availableFoodLocations = append(availableFoodLocations, p)
|
||||
|
||||
snakeHeadToCenter := getDistanceBetweenPoints(snakeHead, centerCoord)
|
||||
foodToCenter := getDistanceBetweenPoints(p, centerCoord)
|
||||
if snakeHeadToCenter <= foodToCenter {
|
||||
// Food must be away from center on at least one axis
|
||||
isFarFromCenter := false
|
||||
if p.X < snakeHead.X && snakeHead.X < centerCoord.X {
|
||||
isFarFromCenter = true
|
||||
} else if centerCoord.X < snakeHead.X && snakeHead.X < p.X {
|
||||
isFarFromCenter = true
|
||||
} else if p.Y < snakeHead.Y && snakeHead.Y < centerCoord.Y {
|
||||
isFarFromCenter = true
|
||||
} else if centerCoord.Y < snakeHead.Y && snakeHead.Y < p.Y {
|
||||
isFarFromCenter = true
|
||||
}
|
||||
if isFarFromCenter {
|
||||
availableFoodLocations = append(availableFoodLocations, p)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue