Remove equidistant food spawns that are closer to center.

This commit is contained in:
bvanvugt 2022-01-18 20:51:01 +00:00
parent 4df2c65432
commit 6e01793750
2 changed files with 81 additions and 18 deletions

View file

@ -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)
}
}